set集合是一个元素不重复的无序的集合。其中一个用途就是被用来去重。
set() 定义
# 定义新的空集合的方法, 只有一种, 不能写: {}, {}是空字典的定义创建方法
set_a = set()
# 非空集合创建
set_b = {value0, value1, value2, ...}
set_c = set(value0, value1, value2, ...)
内置基本操作
# 添加
set_a.add(x)
# 集合的原酸必须是可以哈希(hash)的, 如数字,字符串,元组等, 列表,字典不能作为集合的元素
# 删除
set_a.remove(x) # 存在删除,不存在会报错
set_a.discard(x) # 存在删除,不存在不会报错
# 是否存在
x in set_a # x是否在set_a中
# 数量
len(set_a) # 集合中元素的数量
集合运算
不支持+
*
/
等运算符操作
交集 & 并集 & 差集 & 对称差集
set_a, set_b = {1, 2, 3}, {3, 4}
# 交集
set_a & set_b
set_a.intersection(set_b)
set.intersection(set_a, set_b)
# 并集
set_a | set_b
set_a.union(set_b)
set.union(set_a, set_b)
# 差集
set_a - set_b
set_a.difference(set_b)
set.difference(set_a, set_b)
# 注意差集的次序 此行以上和以下的差集的结果不同
set_b - set_a
set_b.difference(set_a)
set.difference(set_b, set_a)
# 对称差集
# 不同时存在于两个集合的数据 并集 - 交集
set_a ^ set_b
set_a.symmetric_difference(set_b)
set.symmetric_difference(set_a, set_b)
(set_a | set_b) - (set_a & set_b)