Python 集合(Set)实战指南
集合是 Python 内置的一种可变容器模型,存储的是互异且无序的元素。你可以把它想象成只有键没有值的字典,或者数学里的集合概念。它最大的特点是自动去重,这在处理数据清洗时非常有用。
怎么创建集合?
有两种常见写法。直接花括号 {} 是最直观的,但要注意空集合必须用 set(),因为 {} 默认是字典。
# 字面量创建
fruits = {"apple", "banana", "cherry"}
# 函数创建(推荐用于空集合)
empty_set = set()
mixed_set = set([1, 2, 2, 3]) # 输出 {1, 2, 3},重复项被自动剔除
这里有个坑:如果里面放列表或字典会报错,因为集合元素必须是可哈希的(immutable)。
集合能做什么运算?
集合天生支持数学上的集合运算,既有操作符也有对应方法。
并集与交集
合并两个集合,或者找出共同元素。
a = {1, 2, 3}
b = {3, 4, 5}
# 并集 | 或 union()
print(a | b) # {1, 2, 3, 4, 5}
print(a.union(b)) # 结果一样
# 交集 & 或 intersection()
print(a & b) # {3}
print(a.intersection(b))
差集与对称差
有时候我们需要知道'只属于 A 不属于 B'的部分,或者'两者不同'的部分。
# 差集 - 或 difference()
print(a - b) # {1, 2}
print(a.difference(b))
# 对称差 ^ 或 symmetric_difference()
# 即属于 A 或属于 B,但不能同时属于两者的元素
print(a ^ b)


