set与列表的区别是,列表可以有重复的元素,但set不行

 定义时通常使用 set()

但也可以使用大括号(一般不用大括号,因为你用大括号定义你还得通过大括号中的内容判断是dict还是set)

目录

1  常用的

1.1  创建一个集合 set()

1.2  取交集 __and__()

1.3  集合中是否包含指定元素 __contains__()

1.4  取交集之后赋值给自身 __iand__()

1.5  取并集之后赋值自身 __ior__()

1.6  集合做差之后赋值给自身 __isub__()

1.7  去除两个集合中相同的元素,然后将不相同的元素生成一个集合,之后赋值给自身 __ixor__()

1.8  取并集 __or__()

1.9  集合相减 __sub__()

1.10  去除两个集合中相同的元素,然后将不相同的元素生成一个新集合 __xor__()

1.11  添加一个新元素 add()

1.12  清空集合 clear()

1.13  复制集合 copy()

1.14  返回对于另一个集合中自身没有的值,之后生成一个新的集合 difference()

1.15  返回对于另一个集合中自身没有的值,之后生成一个新的集合,在之后赋值给自身 difference_update()

1.16  移除指定元素 discard()

1.17  取交集 intersection()

1.18  取交集之后赋值给自身 intersection_update()

1.19  判断两个集合是否不存在相同的元素 isdisjoint()

1.20  判断元素a是否为元素b的子集 issubset()

1.21  判断元素a是否完全包含元素b issuperset()

1.22  移除集合内的第0号元素然后赋值给自身,之后返回移除的值 pop()

1.23  移除集合中指定元素 remove()

1.24  移出两个集合所有相同元素,返回其余元素组成的新集合 symmetric_difference()

1.25  移出两个集合所有相同元素,其余元素组成的新集合赋值给自身 symmetric_difference_update()

1.26  合并集合 union()

1.27  合并集合并赋值给自身 update()

2  不常用的

2.1  集合是否相等 __eq__()

2.2  是否大于等于 __ge__()

2.3  调用属性时自动执行 __getattribute__()

2.4  大于 __gt__()

2.5  初始化 __init__()

2.6  将自身转变为iter对象 __iter__()

2.7  是否小于等于 __le__()

2.8  获取集合长度 __len__()

2.9  是否小于 __lt__()

2.10  是否不等于 __ne__()

2.11  初始化前调用 __new__()

2.12  反向取交集 __rand__()

2.13  反向取并集 __ror__()

2.14  反向集合相减 __rsub__()

2.15  返回变量大小 __sizeof__()

3  其他


1  常用的


1.1  创建一个集合 set()

可以不传入参数创建一个空的集合

也可以传入迭代器

不能传入单个值

1.2  取交集 __and__()

如果没有交集会返回一个空的集合

可以用 & 替代

1.3  集合中是否包含指定元素 __contains__()

我们可以使用 in 代替

1.4  取交集之后赋值给自身 __iand__()

  • 存在返回值

1.5  取并集之后赋值自身 __ior__()

  • 存在返回值

1.6  集合做差之后赋值给自身 __isub__()

  • 存在返回值

1.7  去除两个集合中相同的元素,然后将不相同的元素生成一个集合,之后赋值给自身 __ixor__()

1.8  取并集 __or__()

可以用 | 替代

1.9  集合相减 __sub__()

可以用 - 替代

在数学中 集合相减 也叫 相对补集 或 差集

如果A为B的子集,那么B-A的结果,则称为A对B的绝对补集

1.10  去除两个集合中相同的元素,然后将不相同的元素生成一个新集合 __xor__()

1.11  添加一个新元素 add()

如果添加了一个已有的元素则不会添加进去

1.12  清空集合 clear()

1.13  复制集合 copy()

和直接把a赋值给b是不同的,上面只是相等但不相同,他们的区别我下面举个例子

1.14  返回对于另一个集合中自身没有的值,之后生成一个新的集合 difference()

1.15  返回对于另一个集合中自身没有的值,之后生成一个新的集合,在之后赋值给自身 difference_update()

difference_update()返回值为None

1.16  移除指定元素 discard()

如果指定元素不在集合中则什么也不做

1.17  取交集 intersection()

1.18  取交集之后赋值给自身 intersection_update()

intersection_update()返回值为None

1.19  判断两个集合是否不存在相同的元素 isdisjoint()

如果有相同的元素返回False

如果没有不相同的元素返回True

1.20  判断元素a是否为元素b的子集 issubset()

1.21  判断元素a是否完全包含元素b issuperset()

  • 效果与issubset()的两个参数倒过来相同

1.22  移除集合内的第0号元素然后赋值给自身,之后返回移除的值 pop()

pop()没有参数

如果集合是空的会报错

1.23  移除集合中指定元素 remove()

与discard()不同的是,如果指定元素不在集合中会报错

1.24  移出两个集合所有相同元素,返回其余元素组成的新集合 symmetric_difference()

1.25  移出两个集合所有相同元素,其余元素组成的新集合赋值给自身 symmetric_difference_update()

symmetric_difference_update()返回值为None

1.26  合并集合 union()

1.27  合并集合并赋值给自身 update()

update()返回值为None

2  不常用的


2.1  集合是否相等 __eq__()

我们可以使用 == 替代

2.2  是否大于等于 __ge__()

集合的比较方式与其他迭代器比较方式相同,先依次比较值的大小,值的大小全部相同比长度

可以用 >= 替代

2.3  调用属性时自动执行 __getattribute__()

2.4  大于 __gt__()

可以用 > 替代

2.5  初始化 __init__()

2.6  将自身转变为iter对象 __iter__()

可以用iter()代替

2.7  是否小于等于 __le__()

可以用 <= 替代

2.8  获取集合长度 __len__()

可以用 len替代

2.9  是否小于 __lt__()

2.10  是否不等于 __ne__()

可以用 != 替代

2.11  初始化前调用 __new__()

2.12  反向取交集 __rand__()

  • 取交集的两个值谁前谁后都不影响运算结果

2.13  反向取并集 __ror__()

  • 取并集的两个值谁前谁后都不影响运算结果

2.14  反向集合相减 __rsub__()

集合相减运算中两个值的顺序是对结果有影响的

2.15  返回变量大小 __sizeof__()

3  其他

在help文档的最下面定义 __hash__ = None,这个的意思是集合没有哈希值

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐