张芷铭的个人博客

对称差集

对称差集(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}

应用场景

  1. 查找不重复的数据
old_users = {"Alice", "Bob", "Charlie"}
new_users = {"Bob", "Charlie", "David", "Eve"}

unique_users = old_users ^ new_users  # 只出现一次的用户
print(unique_users)  # {'Alice', 'David', 'Eve'}
  1. 检测两组数据中的变化
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)(并集去掉交集)。

适用于查找集合中的不重复元素或数据变化分析

这样,你就可以灵活使用对称差集了!🚀

💬 评论