在 Python 中獲取集和的差異

Muhammad Waiz Khan 2023年10月10日
  1. 在 Python 中使用 set.symmetric_difference() 方法查詢集合的差值
  2. 在 Python 中使用 for 迴圈查詢集合中的差值
  3. 在 Python 中使用 XOR 運算子查詢集合中的差值
在 Python 中獲取集和的差異

本教程將講解在 Python 中尋找兩個集合之間差異的各種方法。所謂的差異,是指兩個集合之間不共同的元素。

例如:

set1 = set([1, 2, 3, 4, 5, 6])
set2 = set([2, 3, 6, 8])

這兩個集合之間的差值應該是 1,4,5,8

在 Python 中使用 set.symmetric_difference() 方法查詢集合的差值

set.symmetric_difference() 方法將另一個集合作為輸入,並返回它們之間的差值。下面的示例程式碼解釋瞭如何使用 set.symmetric_difference() 來獲取兩個集合中不共同的元素,並得到所需的差值。

set1 = set([1, 2, 3, 4, 5, 6])
set2 = set([2, 3, 6, 8])

diff_set = set1.symmetric_difference(set2)
print(diff_set)

輸出:

{1, 4, 5, 8}

在 Python 中使用 for 迴圈查詢集合中的差值

為了找到兩個集合中的差異,我們可以使用 for 迴圈遍歷兩個集合,檢查另一個集合中是否存在相同的元素,如果它們是唯一的,則將其新增到列表中。而兩個集合中存在的元素將被忽略。

示例程式碼

set1 = set([1, 2, 3, 4, 5, 6])
set2 = set([2, 3, 6, 8])

temp1 = [x for x in set1 if x not in set2]
temp2 = [x for x in set2 if x not in set1]
diff_set = set(temp1 + temp2)
print(diff_set)

輸出:

{8, 1, 4, 5}

在 Python 中使用 XOR 運算子查詢集合中的差值

找出集合差異的一個簡單方法是對它們應用 XOR 運算,這樣就會放棄相同的元素,只會按要求返回兩個集合中不相同的元素。

為了在程式碼中實現這一點,我們可以在兩個集合之間使用^運算子來獲得所需的集合差異。

set1 = set([1, 2, 3, 4, 5, 6])
set2 = set([2, 3, 6, 8])

diff_set = set(set1) ^ set(set2)
print(diff_set)

輸出:

{1, 4, 5, 8}

相關文章 - Python Set