一、定义
用于存储一组无序的不重复的数据
二、特点
1、 集合是无序的
2、集合中的元素是不重复的, 唯一的
3、集合中存储的数据必须是不可变的数据类型
4、集合是可变的数据类型
三、语法
set1 = {1, 2, 3} # int --> 不可变
1、增加:
add()
update()
参数: 可迭代对象(容器)
将可迭代对象中和集合中不重复的元素添加到集合中
1 # 添加操作 add
2 set5 = {1, 2, 3}
3 set5.add(4)
4 print(set5) # {1, 2, 3, 4}
5
6 # update()
7 set5.update({5, 6, 7, 8})
8 print(set5) # {1, 2, 3, 4, 5, 6, 7, 8}
2、删除:
pop() 随机删除某个元素
remove() 删除指定的元素
clear() 清空集合
del 集合名 删除整个集合
1 set5.pop() # 随机删除一个数据
2 print(set5)
3
4 set5.remove(100) # 删除指定元素
5 print(set5) # {2, 3, 4, 5, 6, 7, 8}
6
7 set5.clear()
8 print(set5) # set()
9
10 del set5
11 # print(set5) # NameError: name 'set5' is not defined
3、集合的遍历: for in
四、运算
1、交集: 取的公共部分 & intersection
1 set1 = {1, 2, 3, 4}
2 set2 = {3, 4, 5, 6}
3 print(set1 & set2) # {3, 4}
4 print(set1.intersection(set2))
2、并集: 取的是所有部分,不包括重复数据 | union
1 print(set1 | set2) # {1, 2, 3, 4, 5, 6}
2 print(set1.union(set2))
3、差集: 第一个集合有的,第二个集合没有的 - difference
1 print(set1 - set2) # {1, 2}
2 print(set1.difference(set2))
4、反交集: 跟交集反着 取的非公共部分 ^ symmetric_difference
1 print(set1 ^ set2) # {1, 2, 5, 6}
2 print(set1.symmetric_difference(set2))
5、子集:判断某个集合是不是另一个集合的子集 set1 < set2 issubset
1 print(set1 < set2) # False
2 print(set1.issubset(set2))
3
4 print({1, 2} < {1, 2, 3, 4}) # True
5
6 print(set2 > set1) # False
7 print(set2.issuperset(set1))
8
9 print({3, 4, 5, 6} > {3, 6}) # True