Python 中的集合运算
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 原地修改集合。