python中set支持交集(&/intersection)、并集(|/union)、差集(-/difference)、对称差集(^/symmetric_difference)运算,均提供操作符与方法两种形式,部分方法支持多集合或可迭代对象输入,并有对应就地更新版本。

在 Python 中,set 类型原生支持交集、并集和差集运算,语法简洁、性能高效,无需手动遍历或嵌套循环。
交集(Intersection):获取两个集合共有的元素
用 & 操作符或 .intersection() 方法。两者等价,但前者更简洁;后者支持传入多个集合或可迭代对象(如列表、元组)。
-
a & b—— 返回新集合,包含同时在a和b中的元素 -
a.intersection(b, c)—— 可一次计算多个集合的交集 - 若需就地修改,用
a.intersection_update(b),直接更新a
并集(Union):合并所有不重复元素
用 | 操作符或 .union() 方法。同样支持多集合/可迭代对象输入。
-
a | b—— 返回新集合,含a和b中所有唯一元素 -
a.union([1,2], {3,4})—— 可混合传入列表、元组、其他集合等 - 就地合并用
a.update(b)(注意:不是union_update,而是update)
差集(Difference):属于 A 但不属于 B 的元素
用 - 操作符或 .difference() 方法。顺序敏感——a - b ≠ b - a。
-
a - b—— 返回在a中但不在b中的元素 -
a.difference(b, c)—— 可连续排除多个集合的元素 - 就地差集用
a.difference_update(b)
对称差集(Symmetric Difference):仅属于其中一个集合的元素
用 ^ 操作符或 .symmetric_difference()。等价于 (a - b) | (b - a)。
-
a ^ b—— 返回在a或b中,但不同时在两者中的元素 -
a.symmetric_difference_update(b)可就地更新 - 注意:不支持多参数,如需多个集合的对称差,需链式调用或用
functools.reduce











