集合是一个无序的,不重复的数据组合,它的主要作用如下:
- 去重,把一个列表变成集合,就自动去重了
- 集合中的元素必须是不可变类型
- 关系测试,测试两组数据之前的交集、差集、并集等关系
常用操作:
1 a = set([1,2,3,4,5]) 2 b = set([4,5,6,7,8]) 3 4 print(a.intersection(b)) #交集 {4, 5} 5 print(a&b) 6 7 print(a.union(b)) #并集 {1, 2, 3, 4, 5, 6, 7, 8} 8 print(a|b) 9 10 print(a.difference(b)) #插集、得到的是a里有的b里没有的 {1, 2, 3} 11 print(a-b) 12 13 print(b.difference(a)) #插集、得到的是b里有的a里没有的 {8, 6, 7} 14 print(b-a) 15 16 print(a.symmetric_difference(b)) #方向交集、{1, 2, 3, 6, 7, 8} 17 print(a^b) 18 19 20 21 22 s = set([3,5,9,10]) #创建一个数值集合 23 24 t = set("Hello") #创建一个唯一字符的集合 25 26 a = t | s # t 和 s的并集 27 28 b = t & s # t 和 s的交集 29 30 c = t – s # 求差集(项在t中,但不在s中) 31 32 d = t ^ s # 对称差集(项在t或s中,但不会同时出现在二者中) 33 基本操作: 34 35 t.add('x') # 添加一项 36 37 s.update([10,37,42]) # 在s中添加多项 38 39 t.pop() #随机删除 t.disicard() 指定删除(元素不存在会报错) 40 41 使用remove()可以删除指定一项(元素不存在会报错): 42 43 t.remove('H') 44 45 len(s) 46 set 的长度 47 48 x in s 49 测试 x 是否是 s 的成员 50 51 x not in s 52 测试 x 是否不是 s 的成员 53 54 s.issubset(t) 55 s <= t 56 测试是否 s 中的每一个元素都在 t 中 57 58 s.issuperset(t) 59 s >= t 60 测试是否 t 中的每一个元素都在 s 中 61 62 s.union(t) 63 s | t 64 返回一个新的 set 包含 s 和 t 中的每一个元素 65 66 s.intersection(t) 67 s & t 68 返回一个新的 set 包含 s 和 t 中的公共元素 69 70 s.difference(t) 71 s - t 72 返回一个新的 set 包含 s 中有但是 t 中没有的元素 73 74 s.symmetric_difference(t) 75 s ^ t 76 返回一个新的 set 包含 s 和 t 中不重复的元素 77 78 s.copy() 79 返回 set “s”的一个浅复制View Code