CodeWalk

Python 中的集合运算

作者:孤独的心 · 2026-05-30 12:55

Python set 支持哪些集合运算?请分别举例说明 union、intersection、difference、symmetric_difference 的用法。

回答

孤独的心

运算符 vs 方法(方法可接受任何可迭代对象):

a = {1, 2, 3, 4}
b = {3, 4, 5, 6}

# 并集
print(a | b)           # {1, 2, 3, 4, 5, 6}
print(a.union(b))

# 交集
print(a & b)           # {3, 4}
print(a.intersection(b))

# 差集(a 中有 b 中没有)
print(a - b)           # {1, 2}
print(a.difference(b))

# 对称差集(并集 - 交集)
print(a ^ b)           # {1, 2, 5, 6}
print(a.symmetric_difference(b))

# 子集/超集判断
print({1, 2} <= a)     # True,子集
print(a >= {1, 2})     # True,超集
print(a.isdisjoint(b)) # False,是否有交集

修改操作update, intersection_update, difference_update, symmetric_difference_update 原地修改集合。