1 """ Python中集合的基本用法 """ 2 "集合是一个无序的不重复元素序列" 3 "创建集合可以使用{}或set(),【注】:创建一个空集合必须用set(),而不能用{},因为{}是用于创建空字典" 4 basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'} 5 print(basket) # 这里用于演示集合的不重复性 6 7 # 下面用于演示集合间的运算 8 a = set('abracadabra') 9 b = set('alacazam') 10 print(a) 11 print(a-b) # 集合a中包含而集合b中不包含的元素 12 print(a|b) # 集合a或b中包含的所有元素 13 print(a&b) # 集合a和b中同时包含的元素 14 print(a^b) # 不同时包含于a和b中的元素 15 16 # 添加元素 17 s = {"Google", "Runoob", "Taobao"} 18 s.add("Baidu") # 添加元素Baidu于集合中 19 print(s) 20 s.update({"Sohu"}) # 添加元素Sohu于集合中 21 print(s) 22 23 # s.remove(x)移除元素 24 s1 = {"Google", "Runoob", "Taobao"} 25 s1.remove("Runoob") 26 print(s1) 27 28 # s.discard(x)也是移除集合中的元素,且如果元素不存在,不会发生错误。 29 s2 = {"Google", "Runoob", "Taobao"} 30 s2.discard("Baidu") # 移除集合中不存在的元素,打印仍显示s2中的元素 31 print(s2) 32 33 # s.pop()随机删除集合中的一个元素 34 s3 = {"Google", "Runoob", "Taobao"} 35 s3.pop() 36 print(s3) 37 38 # len(s)计算集合中元素的个数 39 s4 = {"Google", "Runoob", "Taobao"} 40 print(len(s4)) 41 42 # set.difference(set)返回集合的差集,即返回的集合元素包含在第一个集合中,但不包含在第二个集合中。 43 x = {"apple", "banana", "cherry"} 44 y = {"google", "microsoft", "apple"} 45 z = x.difference(y) 46 print(z) 47 48 # set.difference_update(set)用于移除两个集合中都存在的元素。 49 x1 = {"apple", "banana", "cherry"} 50 y1 = {"google", "microsoft", "apple"} 51 z1 = x1.difference(y1) 52 print(z) 53 54 55 # set.intersection(set1, set2 ... etc)用于返回两个或更多集合中都包含的元素,即交集。 56 x2 = {"apple", "banana", "cherry"} 57 y2 = {"google", "microsoft", "apple"} 58 z2 = x2.intersection(y2) 59 print(z2) 60 61 # set.intersection_update(set1, set2 ... etc)用于获取两个或更多集合中都重叠的元素,即计算交集。 62 "intersection_update() 方法不同于 intersection() 方法,因为 intersection() 方法是返回一个新的集合,而 intersection_update() 方法是在原始的集合上移除不重叠的元素。" 63 x3 = {"apple", "banana", "cherry"} 64 y3 = {"google", "microsoft", "apple"} 65 x3.intersection_update(y2) 66 print(x3) 67 68 # set.isdisjoint(set)用于判断两个集合是否包含相同的元素,如果包含返回True,否则返回False。 69 x4 = {"apple", "banana", "cherry"} 70 y4 = {"google", "microsoft", "apple"} 71 z4 = x4.isdisjoint(y4) 72 print(z4) 73 74 # set.issubset(set)用于判断集合的所有元素是否都包含在指定集合中,如果是则返回True,否则返回False。 75 x5 = {"apple", "banana", "cherry"} 76 y5 = {"google", "microsoft", "apple"} 77 z5 = x5.issuperset(y5) # 判断集合x5中的元素是否全都在集合y5中 78 print(z5) 79 80 # set.issuperset(set)用于判断指定集合的所有元素是否都包含在原始的集合中,如果是则返回True,否则返回False。 81 x6 = {"f", "e", "d", "c", "b", "a"} 82 y6 = {"a", "b", "c"} 83 z6 = x6.issuperset(y6) #判断y6中的元素是否都包含在x6中 84 print(z6) 85 86 # set.symmetric_difference(set)用于返回两个集合中不重复的元素集合,即会移除两个集合中都存在的元素。 87 x7 = {"apple", "banana", "cherry"} 88 y7 = {"google", "runoob", "apple"} 89 z7 = x7.symmetric_difference(y7) 90 print(z7) 91 92 # set.symmetric_difference_update(set)移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中。 93 x8 = {"apple", "banana", "cherry"} 94 y8 = {"google", "runoob", "apple"} 95 x8.symmetric_difference_update(y8) 96 print(x8) 97 98 # set.union(set1, set2)用于合并两个集合,即包含了所有集合的元素,重复的元素只会出现一次。 99 x9 = {"apple", "banana", "cherry"} 100 y9 = {"google", "runoob", "apple"} 101 z9 = x9.union(y9) 102 print(z9)