参考链接: Python set集合 | difference
创建
# 创建空集合
set()
# 创建集合,参数必须为 iterable
set(it)
set(dict) # 只取dict.keys()作为集合的元素
特性
# 集合特性:无序序列
# 集合特性:可变
# 集合特性:去重
ls = [1, 2, 1]
s = set(ls)
print(s) # return {1, 2}
内置函数
添加
a = set('one')
# 方法1:将参数作为整体的元素加入
a.add('two')
# 方法2:将参数分解成多个元素加入
a.update('three')
删除
a = set([1, 2])
# 删除,参数为 element
a.remove(2) # 存在则删除
a.remove(3) # 不存在则报错:keyError
# 删除,参数为 element
a.discard(2) # 存在则删除
a.discard(3) # 不存则什么都不做
# 删除并返回值
a.pop() # 随机删取
# 删除,清空
a.clear() # set()
判断子集/父集
a = {1, 2}
b = {1, 2, 3}
# 判断 a 是否为 b 的子集
a < b
a.issubset(b)
# 判断 a 是否为 b 的父集
a > b
a.issupset(b)
# 其他:<=、>=、!=、==
交集/并集/差集/对称差集
# 交集:两个集合重合的部分
a & b
a.intersection(b)
a.intersection_update(b) # 返回两个集合的交集,替换集合 a
a.isdisjoint(b) # 两个集合是否存在空交集,存在则返回True
# 并集:两个集合所有元素的集合
a | b
a.union(b)
# 差集:前集合与后集合相比,在前集合中而不在后集合中的部分
a - b
a.difference(b)
# 对称差集:两个集合不重复的部分
a.symmeric_difference(b)
a.symmeric_difference_update(b) # 返回两个集合的对称差集,替换集合 a
扩展:
不可变的集合:frozenset