python 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_
set与列表的区别是,列表可以有重复的元素,但set不行
定义时通常使用 set()
但也可以使用大括号(一般不用大括号,因为你用大括号定义你还得通过大括号中的内容判断是dict还是set)
目录
1.3 集合中是否包含指定元素 __contains__()
1.7 去除两个集合中相同的元素,然后将不相同的元素生成一个集合,之后赋值给自身 __ixor__()
1.10 去除两个集合中相同的元素,然后将不相同的元素生成一个新集合 __xor__()
1.14 返回对于另一个集合中自身没有的值,之后生成一个新的集合 difference()
1.15 返回对于另一个集合中自身没有的值,之后生成一个新的集合,在之后赋值给自身 difference_update()
1.18 取交集之后赋值给自身 intersection_update()
1.19 判断两个集合是否不存在相同的元素 isdisjoint()
1.20 判断元素a是否为元素b的子集 issubset()
1.21 判断元素a是否完全包含元素b issuperset()
1.22 移除集合内的第0号元素然后赋值给自身,之后返回移除的值 pop()
1.24 移出两个集合所有相同元素,返回其余元素组成的新集合 symmetric_difference()
1.25 移出两个集合所有相同元素,其余元素组成的新集合赋值给自身 symmetric_difference_update()
2.3 调用属性时自动执行 __getattribute__()
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,这个的意思是集合没有哈希值
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)