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