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)

 

posted @ 2022-04-10 15:54  陈亦洺  阅读(38)  评论(0编辑  收藏  举报