集合的使用
- 集合:
特点: 1.无序
2.没有重复数据
- 列表转换为集合
list_1 = [1,3,5,6,7,3,6,9] list_1 = set(list_1)#将列表转换为集合 print(list_1)
结果:{1, 3, 5, 6, 7, 9}
- 交集intersection()
list_1 = [1,3,5,6,7,3,6,9] list_1 = set(list_1)#将列表转换为集合 list_2 = set([2,33,44,5,6,9,77,55]) #交集 print(list_1.intersection())
运算符号显示:
print(list_1 & list_2)
结果:{9, 5, 6}
- 并集union()
list_1 = [1,3,5,6,7,3,6,9] list_1 = set(list_1)#将列表转换为集合 list_2 = set([2,33,44,5,6,9,77,55]) #并集 print(list_1.union(list_2))
运算符号显示:
print(list_1. | list_2)
结果:{1, 33, 3, 2, 5, 6, 7, 9, 44, 77, 55}
- 差集difference()
list_1 = [1,3,5,6,7,3,6,9] list_1 = set(list_1)#将列表转换为集合 list_2 = set([2,33,44,5,6,9,77,55]) #差集 print(list_1.difference(list_2)) print(list_2.difference(list_1))
运算符号显示:
print(list_1 - list_2)
print(list_2 - list_1)
结果: {1, 3, 7} {33, 2, 44, 77, 55}
- 子集/父集issubset()/issuperset()
list_1 = [1,3,5,6,7,3,6,9] list_1 = set(list_1)#将列表转换为集合 list_2 = set([2,33,44,5,6,9,77,55]) list_3 = set([1,3,5]) #子集/父集 print(list_1.issubset(list_2))#list_1是否是list_2的子集,是则True,否则False print(list_1.issuperset(list_3))#list_3是list_1的父集,所以返回True print(list_3.issubset(list_1)) print(list_1.issuperset(list_2))#list_1是否是list_2的父集,是则True,否则False
结果:
False
True
True
False
- 对称差集symmetric_difference()
list_1 = [1,3,5,6,7,3,6,9] list_1 = set(list_1)#将列表转换为集合 list_2 = set([2,33,44,5,6,9,77,55]) #对称差集 print(list_1.symmetric_difference(list_2))
运算符号显示:
print(list_1 ^ list_2)
结果: {33, 2, 1, 3, 7, 44, 77, 55}
- isdisjoint()
list_1 = [1,3,5,6,7,3,6,9] list_1 = set(list_1)#将列表转换为集合 list_3 = set([1,3,5]) #是否有交集,有则返回True,无则False print(list_1.isdisjoint(list_3)) 结果: False
- 集合增加值
list_1 = set([1,3,5]) #若集合没有这个值,则集合增加一项,否则不变 list_1.add(999) #若集合没有这个值的,则增加到集合,若集合原来就存在的不变 list_1.update([1,33,44,66]) print(list_1)
- 集合删除值 discard()
list_1 = set([1,3,5]) #删除 list_1.remove('2')#remove只能删除集合有的东西,若没有,则报错 list_1.discard("22")#集合存在该值,则能删除,若没有,则不操作 print(list_1)