集合学习笔记
1.添加 add() 注意:add仅可更新一个值
s={1,2,3,4} s.add(6) print(s)
2.清空集合clear()
s={1,2,3,4} s.clear() print(s)
3.拷贝 copy()
s={1,2,3,4} s1=s.copy()
4.随机删除 pop()
s={1,2,3,4} s.pop() print(s)
5.指定删除 remove() 注意:删除集合中不存在的元素会报keyerror的错
s={1,2,3,4} s.remove('3') print(s)
6.指定删除 discard() 注意:删除集合中不存在的元素不会报错
s={1,2,3,4} s.discard('sbbbb') print(s)
交并差
交
list1=[1,2,3,4,5] list2=[2,3,5,5,6,7,8] set1=set(list1) set2=set(list2) print(set1.intersection(set2)) print(set1&set2)
注意:set1&set2 和set1.intersection(set2)效果一致,求交集
并
print(set1.union(set2)) print(set1|set2)
注意:set1.uniont(set2)效果与set1|set2相同
差
list1=[1,2,3,4,5] list2=[2,3,5,5,6,7,8] set1=set(list1) set2=set(list2) print(set1-set2) print(set2-set1) print(set1.difference(set2)) print(set2.difference(set1))
集合的其他内置方法
交叉补集
print(set1.symmetric_difference(set2)) print(set1^set2)
差集运算之difference_update()
set1.difference_update(set2) 上述语句效果等同于set1=set1-set2 difference_update的效果就是差集运算,并将值重新赋予左边的变量
isdisjoint():两个集合没有交集,返回True,否则返回False
s1={1,2} s2={3,4} print(s1.isdisjoint(s2))
issubset():s1<=s2 判断包含关系,s1是s2的子集时,返回True,否则返回False
issuperset():s1>=s2 判断包含关系,s1是s2的父集时,返回True,否则返回False
s1={1,2} s2={1,2,3} print(s1.issubset(s2)) print(s2.issuperset(s1))
update():效果相当于将s2赋值给s1 可以更新多个值
s1.update(s2) print(s2)
补充:
frozenset:定义不可变集合
s=frozenset('hello') print(s)
举例:
可以看到,add方法已不可用,