集合(set):
集合去重:
集合关系测试:测试两组数据之间的交集,差集,并集等关系。
关系测试
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 # 集合是无序的 2 list_1 = [1,3,5,7,9,2,4,5,8,9] 3 4 list_1 = set(list_1) 5 6 list_2 = set([1,2,3,4,5,6,2,4,6,6]) 7 8 9 print(list_1) # 创建 {1, 2, 3, 4, 5, 7, 8, 9} 10 11 print(list_2) 12 13 # 交集 intersection 或者 & 14 15 print(list_1.intersection(list_2)) # {1, 2, 3, 4, 5} 16 17 # 并集 union 或者 | 18 19 print(list_1.union(list_2)) #{1, 2, 3, 4, 5, 6, 7, 8, 9} 20 21 # 差集 difference - 减号 22 23 print(list_1.difference(list_2)) # {8, 9, 7} 24 print(list_2.difference(list_1)) # {6} 25 26 # 子集 27 list3 = set([1,2,3,4,5]) 28 29 print(list3.issubset(list_1)) # True 30 print(list_1.issuperset(list3)) # True 31 32 # 对称差集,去掉双方重复的 ^ 33 34 print(list_1.symmetric_difference(list_2)) # {6, 7, 8, 9} 35 36 37 # 没有交集,返回True 38 list4 = set([88,99,77,55]) 39 print(list4.isdisjoint(list3)) # True 40 print(list3.isdisjoint(list_2)) # False
基本操作
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 list1 = [1,3,5,7,9,2,4,5,8,9] 2 3 list1 = set(list1) 4 5 # 添加 6 7 list1.add('x') # 添加一项 {1, 2, 3, 4, 5, 7, 8, 9, 'x'} 8 list1.update([1,10,9,64]) # 添加多项 {64, 1, 2, 3, 4, 5, 7, 8, 9, 10, 'x'} 9 10 # 删除 11 12 list1.remove(10) 13 14 print(list1) 15 16 # 长度len 17 print(len(list1)) 18 19 # x in a 测试x 是否是a 的成员 20 # x not in a 测试x是否不是a 的成员 21 22 b = list1.copy() 23 print(b) # 浅复制 24 25 # 删除任意并返回 26 print(b.pop()) 27 28 print(b.pop()) 29 30 # 删除 discard 如果不存在不会报错,remove会报错 31 32 b.discard(5) 33 b.discard('y') 34 print(b)