对称差集(Symmetric Difference)
在集合运算中,对称差集(^ 运算符 或 set.symmetric_difference() 方法)指的是两个集合中,不同时存在的元素。换句话说,它返回在 A 或 B 中,但不在 A 和 B 交集中的元素。
数学定义
对称差集 $A \triangle B$ 定义为: $$A \triangle B = (A \cup B) - (A \cap B)$$ 即:
• 取 A 和 B 的 并集
• 去掉 A 和 B 的 交集
Python 代码示例
1️⃣ 使用 ^ 计算对称差
A = {1, 2, 3, 4}
B = {3, 4, 5, 6}
symmetric_diff = A ^ B # 对称差集
print(symmetric_diff) # {1, 2, 5, 6}
2️⃣ 使用 symmetric_difference() 计算对称差
symmetric_diff_method = A.symmetric_difference(B)
print(symmetric_diff_method) # {1, 2, 5, 6}
应用场景
- 查找不重复的数据
old_users = {"Alice", "Bob", "Charlie"}
new_users = {"Bob", "Charlie", "David", "Eve"}
unique_users = old_users ^ new_users # 只出现一次的用户
print(unique_users) # {'Alice', 'David', 'Eve'}
- 检测两组数据中的变化
set1 = {101, 102, 103}
set2 = {102, 103, 104, 105}
changed_values = set1 ^ set2
print(changed_values) # {101, 104, 105}
总结
✅ 对称差集 A ^ B 返回仅在 A 或 B 中存在,但不同时存在的元素。
✅ 等价于 (A | B) - (A & B)(并集去掉交集)。
✅ 适用于查找集合中的不重复元素或数据变化分析。
这样,你就可以灵活使用对称差集了!🚀
💬 评论