1 '''
2 集合:可变的数据类型,他里面的元素必须是不可变的数据类型,无序,不重复。
3 不可变是可哈希的: 数字 字符串 bool 元组
4 可变是不可哈希的 :字典{} 列表 集合
5 {}
6
7 '''
8
9 set1 = set({1,2,3})
10 set2 = {1,2,3,[2,3],{'name':'alex'}} # 错的
11 print(set1)
12 print(set2)
13
14
15 li = ['alex',123,True,(1,2,3,'wusir'),[1,2,3,'小明',],{'name':'alex'}]
16 # li.extend(123) # 报错,int是不可迭代对象
17 # print(li)
18 li.extend('123') # 字符串是可迭代对象,添加的时候都分开添加,拆成‘1’,‘2’,‘3’
19 print(li)
20
21 set1 = {'alex','wusir','ritian','egon','barry',}
22 增
23 add
24 set1.add('女神')
25 update
26 set1.update('abc') # 可迭代增加,类似于列表中的extend('123')
27 结果{'wusir', 'ritian', 'barry', 'egon', 'alex', 'b', 'c', 'a'}
28 print(set1) # 无序的
29
30 删除
31 print(set1.pop())
32 print(set1) # 随机删除某个值
33 结果
34 {'egon', 'b', 'wusir', 'ritian', 'barry', 'alex', 'c', 'a'}
35 egon
36 {'b', 'wusir', 'ritian', 'barry', 'alex', 'c', 'a'}
37
38 set1.remove('alex') # 按元素
39 print(set1)
40
41 set() 空集合 ,{}空字典
42 set1.clear()
43 print(set1) # set()
44
45
46 del set1
47 print(set1)
48
49 没有改,每个元素是不可变数据类型
50
51 查
52 只能for 循环查
53 for i in set1:
54 print(i)
55
56 求交集
57 set1 = {1,2,3,4,5}
58 set2 = {4,5,6,7,8}
59 set3 = set1 & set2 #求交集
60 print(set3) # {4, 5}
61 print(set1.intersection(set2)) # {4, 5} #求交集
62
63 求并集
64 set1 = {1,2,3,4,5}
65 set2 = {4,5,6,7,8}
66 print(set1 | set2) # {1, 2, 3, 4, 5, 6, 7,8} # 求并集
67 print(set2.union(set1)) # {1, 2, 3, 4, 5, 6, 7} # 求并集
68
69 反交集,就是除了交集以外的部分,如交集是{4,5}
70 set1 = {1,2,3,4,5}
71 set2 = {4,5,6,7,8}
72 print(set1 ^ set2) # {1, 2, 3, 6, 7, 8}
73 print(set1.symmetric_difference(set2)) # {1, 2, 3, 6, 7, 8}
74
75
76 差集
77 set1 = {1,2,3,4,5}
78 set2 = {4,5,6,7,8}
79 print(set1 - set2) # {1, 2, 3}
80 #set1独有的,set2没有的部分
81 print(set1.difference(set2)) # {1, 2, 3}
82
83 子集
84 set1 = {1,2,3,}
85 set2 = {1,2,3,4,5,6}
86 print(set1 < set2)
87 print(set1.issubset(set2)) # 这两个相同,都是说明set1是set2子集。
88 print(set2 > set1)
89 print(set2.issuperset(set1)) # 这两个相同,都是说明set2是set1超集。
90
91 去重
92 将列表转化成集合自动去重,然后再将集合转化成列表,就完成了列表去重
93 li = [1,2,33,33,2,1,4,5,6,6]
94 set1 = set(li)
95 print(set1)
96 li = list(set1)
97 print(li)
98 s1 = {1,2,3}
99 print(s1,type(s1))
100
101 转化成不可变数据类型
102 s1 = {1,2,3}
103 print(s1,type(s1))
104 s = frozenset('barry')
105 print(s,type(s))
106 for i in s:
107 print(i)