集合操作
集合是一个无序的,不重复的数据组合,它的主要作用如下:
- 去重,把一个列表变成集合,就自动去重了
- 关系测试,测试两组数据之前的交集、差集、并集等关系
常用操作
1 list1 = [1,3,5,6,7,8,0,3,2,5,6] 2 3 list1 = set(list1) #创建一个数值集合 4 print(list1) #输出{0, 1, 2, 3, 5, 6, 7, 8} 5 6 list2 = set([3,7,66,55,2,4,9,22]) 7 print(list2) 8 9 10 #交集 & 和 intersection 用法 11 print(list1 & list2) 12 print(list2.intersection(list1)) #输出{2, 3, 7} 13 14 #并集 | 和 union 用法 15 print(list1 | list2) 16 print(list2.union(list1)) #输出{0, 1, 2, 66, 3, 4, 5, 7, 6, 9, 8, 22, 55} 17 18 #差集 - 和 difference 用法 19 print(list1 - list2) #输出{0, 1, 5, 6, 8} 在1里而不在2里,且去掉两者的交集 20 print(list2.difference(list1)) #输出{66, 4, 9, 22, 55} 在2里且不在1里,且去掉两者的交集 21 22 #对称差集 ^ 和 symmetric_difference 用法 23 print(list1 ^ list2) #输出{0, 1, 66, 4, 5, 6, 9, 8, 22, 55} 两个去掉交集剩余的 24 print(list1.symmetric_difference(list2)) 25 26 #判断是否为子集 27 list3 = set([1,5,6,7,8]) 28 print(list3.issubset(list1)) #输出True 判断3是否为1的子集 29 30 #判断是否为父集 31 print(list1.issuperset(list3)) #输出True 判断1是否为3的父集 32 33 #判断是否为不相交 34 list4 = set([2,3]) 35 print(list3.isdisjoint(list4)) #输出True 判断两者是否有想同的元素,如果有,则输出False 36 37 38 #添加 add 和 update 39 list3.add(9) # 添加一项 40 print(list3) #输出{1, 5, 6, 7, 8, 9} 41 42 list4.update([1, 11, 111]) # 在s中添加多项 43 print(list4) #输出{1, 2, 3, 11, 111} 44 45 #删除 remove 和 pop 46 list3.remove(9) 47 print(list3) #输出{1, 5, 6, 7, 8} 使用remove()可以删除一项: 48 49 list3.pop() 50 list3.pop() 51 print(list3) #输出{6, 7, 8} 随机删除一项