2022.04.10-python学习之set
1 # File : learning_set.py 2 # Datetime : 2022/4/10 0010 13:49 3 # 集合 set 4 5 # 集合是一个无序的,不重复的数据组合, 6 # 它的主要作用如下: 7 # 1. 去重复,把一个列表变成集合,就自动去重了 8 # 2. 关系测试,测试两组数据之前的交集、差集、并集等关系 9 10 11 # 1. 集合的创建 12 # 1.1 直接使用{}创建 13 # 例: 14 set1 = {"python", "mysql", "web"} 15 set2 = {1, 2, 3, 4, 5} 16 set3 = {"python", 123, ("人生苦短", "我用python")} 17 18 # 1.2 使用set()函数创建 19 set4 = set() # 创建一个空集合 20 set5 = set("人生苦短,我用python") 21 print(set5) 22 23 # 注意:创建空集合时,只能 使用set()函数实现,{}表示的是创建一个空字典 24 25 list1 = [[1, 3, 5], 123, 456] 26 # set6 = set(list1) #此时会报错,因为list1中元嵌套的列表此时属于不可哈希内容,即列表list中元素索引为0的位置是可变数据类型 27 # 备注 28 # 可以被哈希的数据结构:int、float、str、tuple 和 NoneType。 29 # 不可以被哈希的数据结构:dict、list 和 set。 30 # 关于哈希和不可哈希的数据结构,详细介绍参考链接:https://juejin.cn/post/6844904198711017485 31 32 # 2. 集合的添加和删除 33 # 2.1 向集合中添加元素 使用add()方法实现 如 34 set1.add("人生苦短,我用python") 35 print("使用add()函数向集合中添加元素后", set1) 36 37 # 2.2 从集合中删除元素 38 set1.remove("web") # 从集合中删除指定元素 39 # 注意: 40 # 使用remove删除指定元素时,如果元素不存在会抛出异常, 41 # 在实际操作中,在移除指定元素时最好使用in关键字先判断指定元素是否存在 42 43 print("使用remove()函数从集合中删除指定元素后", set1) 44 45 set1.pop() # 移除一个元素 46 print("使用pop()函数从集合中移除一个元素后", set1) 47 48 set1.clear() # 清空集合 49 print("使用clear()函数清空集合后", set1) 50 51 # 3. 集合的交集,并集,和差集运算 52 # 3.1 交集运算符 & 53 # 3.2 并集运算符 | 54 # 3.3 差集运算符 - 55 56 # 代码实例 57 striker = {"邓肯", "加内特", "马龙"} # 前锋球员名字 58 centre_forward = {"邓肯", "奥尼尔", "姚明"} # 中锋球员名字 59 # 输出既是前锋也是中锋的球员名字 60 print("交集运算", striker & centre_forward) # 等同于 striker.intersection(centre_forward) 61 62 # 输出前锋和中锋的全部球员名字 63 print("并集运算", striker | centre_forward) # 等同于 striker.union(centre_forward) 64 65 # 输出是前锋但不是中锋的球员名字 in A not in B 66 print("差集运算", striker - centre_forward) # 等同于 striker.difference(centre_forward) 67 68 # 输出是中锋但不是前锋的球员名字 in B not in A 69 print("差集运算2", centre_forward - striker) # 等同于 centre_forward.difference(striker) 70 71 # 对称差集(反向交集) 72 print("对称差集", striker ^ centre_forward) # 等同于 striker.symmetric_difference(centre_forward)