1.集合的交差并补
intersection() 交集
set1 ={'卢俊义','花荣', '吴用'}
set2 ={'公孙胜','秦明','卢俊义'}
res = set1.intersection(set2)
print(res) #{'卢俊义'}
#简写
res = set1 & set2
print(res)
difference() 差集
set1 ={'卢俊义','花荣', '吴用'}
set2 ={'公孙胜','秦明','卢俊义'}
res = set1.difference(set2)
print(res)
# 简写
res = set1 - set2
print(res)
union() 并集
set1 ={'卢俊义','花荣', '吴用'}
set2 ={'公孙胜','秦明','卢俊义'}
res = set1.union(set2)
print(res)
# 简写
res = set1 | set2
print(res)
symmetric_difference() 对称差集 (补集情况涵盖在其中)
按位异或 , 两者不相同方为真,一个是1,一个是0 ,结果是True,两者一样是False
set1 ={'卢俊义','花荣', '吴用'}
set2 ={'公孙胜','秦明','卢俊义'}
res = set1.symmetric_difference(set2)
print(res)
# 简写
res = set1 ^ set2
print(res)
issubset() 判断是否是子集
set1 ={'卢俊义','花荣', '吴用'}
set2 ={'公孙胜','秦明','卢俊义'}
res = set1.issubset(set2)
print(res)
# 简写
res = set1 <= set2
print(res)
issuperset() 判断是否是父集
set1 ={'卢俊义','花荣', '吴用'}
set2 ={'公孙胜','秦明','卢俊义'}
res = set2.issuperset(set1)
print(res)
# 简写
res = set2 >= set1
print(res)
isdisjoint() 检测两集合是否不相交 不相交 True 相交False
set1 ={'卢俊义','花荣', '吴用'}
set2 ={'公孙胜','秦明','卢俊义'}
res = set1.isdisjoint(set2)
print(res)# False 代表相交;
2.集合的相关函数
- 增
set1 ={'卢俊义','花荣', '吴用'}
set1.add("宋江")
print(set1)#{'卢俊义', '吴用', '花荣', '宋江'}
#update() 迭代着增加
setvar.update("abc")
print(setvar)
- 删
clear() 清空集合
set1 ={'卢俊义','花荣', '吴用'}
set1.clear()
print(set1) #set()
pop() 随机删除集合中的一个数据
set1 ={'卢俊义','花荣', '吴用'}
res = set1.pop()
print(res) #卢俊义
print(set1) #{'花荣', '吴用'}
remove() 删除集合中指定的值(不存在则报错)
set1 ={'卢俊义','花荣', '吴用'}
res = set1.remove("吴用")
print(res)#None
print(set1)#{'花荣', '卢俊义'}
discard() 删除集合中指定的值(不存在的不删除 推荐使用)
set1 ={'卢俊义','花荣', '吴用'}
set1.discard("小小") #不存在不会报错
set1.discard("花荣")
print(set1)
3.冰冻集合
frozenset 可强转容器类型数据变为冰冻集合
冰冻集合一旦创建,不能在进行任何修改,只能做交叉并补操作
# 空的冰冻集合
fz = frozenset()
print(fz,type(fz))
lst = ["a",'c','b']
fz = frozenset(lst)
print(fz,type(fz))
#冰冻集合可遍历
for i in fz:
print(i)
#冰冻集合只做交差并补
fz1 = frozenset(["a",'c','b'])
fz2 = frozenset(('c','b','d'))
print(fz1 & fz2)
print(fz1 - fz2)
# fz1.add("cccc") error 不能添加或者删除,只做交差并补;