集合
集合是一个无序的,不重复的数据组合,它的主要作用如下:
- 去重,把一个列表变成集合,就自动去重了
- 关系测试,测试两组数据之前的交集、差集、并集等关系
创建集合
list_1=[1,4,5,7,3,6,7,9] # 列表 list_1=set(list_1) #创建集合 集合也是无序的 print(list_1,type(list_1)) list_2=set([2,6,0,66,22,8,4]) print(list_1,list_2) 输出:{1, 3, 4, 5, 6, 7, 9} <class 'set'> {1, 3, 4, 5, 6, 7, 9} {0, 2, 66, 4, 6, 8, 22}
求交集
print(list_1.intersection(list_2)) 输出: {4, 6}
求并集 差集
print(list_1.union(list_2)) #求并集 两个集合去重合并 print(list_1.difference(list_2)) #差集 list_1中有 list_2中没有的元素 print(list_2.difference(list_1)) #差集 list_2中有 list_1中没有的元素 输出: {0, 1, 2, 3, 4, 5, 6, 7, 66, 9, 8, 22} {1, 3, 5, 7, 9} {0, 2, 66, 8, 22}
子集
print(list_1.issubset(list_2)) # 判断list_1是否是list_2的子集 list_3=set([1,3,7]) print(list_3.issubset(list_1)) 输出: False True
父集
#父集 print(list_1.issuperset(list_2)) # 判断list_1是否是list_2的父集 输出: False
对称差集
print(list_1.symmetric_difference(list_2)) list_4=set([1,4,6]) print(list_3.isdisjoint(list_4)) #如果两个集合没有交集返回True 否则返回False 输出: {0, 1, 2, 66, 3, 5, 7, 8, 9, 22} False
运算符
print(list_1 & list_2) #交集 print(list_1 | list_2) #并集 print(list_1 - list_2) #差集 print(list_1 ^ list_2) #对称 差集
集合基本操作
集合中是没有插入的,只能添加
list_1.add(2) #添加一项
list_5=set([100,200,300]) list_1.update(list_5) #只能把一个集合更新到另一个集合中
list_1.remove(100) #删除集合中一个元素
list_1.discard(100) #删除一个元素 如果这个元素没有 不会报错 而remove会报错
x in s 测试 x 是否是 s 的成员 x not in s 测试 x 是否不是 s 的成员