Python 集合運算子



Python 集合運算子

Python 中的集合運算子是特殊的符號和函式,允許你對集合執行各種操作,例如並集、交集、差集和對稱差集。這些運算子提供了一種組合、比較和修改集合的方法。

Python 使用以下集合運算子實現它們:

Python 集合並集運算子 (|)

兩個集合的並集是一個包含 A 或 B 或兩者中所有不同元素的集合。例如,

{1,2}∪{2,3}={1,2,3}

下圖說明了兩個集合的並集。

Union Of Two Sets

在 Python 中,你可以使用union() 函式或| 運算子執行並集操作。此操作組合兩個集合的元素,同時消除重複項,從而產生一個包含來自兩個集合的所有唯一元素的新集合:

示例

以下示例使用 "|" 運算子和 union() 函式,並返回兩個集合的並集:

set1 = {1, 2, 3}
set2 = {3, 4, 5}
set3 = {6, 8, 9}
set4 = {9, 45, 73}
union_set1 = set1.union(set2)
union_set2 = set3 | set4
print ('The union of set1 and set2 is', union_set1)
print ('The union of set3 and set4 is', union_set2)

執行上述程式碼後,我們將得到以下輸出:

The union of set1 and set2 is {1, 2, 3, 4, 5}
The union of set3 and set4 is {73, 6, 8, 9, 45}

Python 集合交集運算子 (&)

兩個集合 A 和 B 的交集,用 A∩B 表示,包含 A 和 B 中共有的所有元素。例如,

{1,2}∩{2,3}={2}

下圖說明了兩個集合的交集。

Intersection Operator

Python 提供intersection() 函式或& 運算子來執行此操作。結果集合僅包含兩個集合中都存在的元素:

示例

以下示例使用 & 運算子和 intersection() 函式,並返回兩個集合的交集:

set1 = {1, 2, 3}
set2 = {3, 4, 5}
set3 = {6, 8, 9}
set4 = {9, 8, 73}
intersection_set1 = set1.intersection(set2)  
intersection_set2 = set3  & set4
print ('The intersection of set1 and set2 is', intersection_set1)
print ('The intersection of set3 and set4 is', intersection_set2)

它將產生以下輸出:

The intersection of set1 and set2 is {3}
The intersection of set3 and set4 is {8, 9}

Python 集合差集運算子 (-)

兩個集合的差集(減法)包含存在於第一個集合中但不存在於第二個集合中的元素。其定義如下。集合 A−B 包含在 A 中但不包含在 B 中的元素。例如,

If A={1,2,3} and B={3,5}, then A−B={1,2}

下圖說明了兩個集合的差集:

difference_operator

Python 提供difference() 函式或- 運算子來執行此操作。結果集合包含第一個集合中獨有的元素:

示例

以下示例使用 "-" 運算子和 difference() 函式,並返回兩個集合的差集:

set1 = {1, 2, 3}
set2 = {3, 4, 5}
set3 = {6, 8, 9}
set4 = {9, 8, 73}
difference_set1 = set1.difference(set2)
difference_set2 = set3 - set4
print ('The difference between set1 and set2 is', difference_set1)
print ('The difference between set3 and set4 is', difference_set2)

我們將得到如下所示的輸出:

The difference between set1 and set2 is {1, 2}
The difference between set3 and set4 is {6}

請注意,“s1-s2”與“s2-s1”不同。

Python 集合對稱差集運算子

兩個集合的對稱差集包含存在於任一集合中但不存在於兩個集合中的元素。A 和 B 的對稱差集用“A Δ B”表示,定義為:

A Δ B = (A − B) ⋃ (B − A)

如果 A = {1, 2, 3, 4, 5, 6, 7, 8} 且 B = {1, 3, 5, 6, 7, 8, 9},則 A Δ B = {2, 4, 9}。

下圖說明了兩個集合之間的對稱差集:

Symmetric Difference

Python 提供symmetric_difference() 函式或^ 運算子來執行此操作。結果集合包含每個集合中獨有的元素。

示例

以下示例使用 "^" 運算子和 symmetric_difference() 函式,並返回兩個集合的對稱差集:

set1 = {1, 2, 3}
set2 = {3, 4, 5}
set3 = {6, 8, 9}
set4 = {9, 8, 73}
symmetric_difference_set1 = set1.symmetric_difference(set2)  
symmetric_difference_set2 = set3 ^ set4
print ('The symmetric difference of set1 and set2 is', symmetric_difference_set1)
print ('The symmetric difference of set3 and set4 is', symmetric_difference_set2)

產生的結果如下:

The symmetric difference of set1 and set2 is {1, 2, 4, 5}
The symmetric difference of set3 and set4 is {73, 6}

Python 子集測試操作

你可以使用issubset() 函式或<= 運算子檢查一個集合是否為另一個集合的子集。如果集合A 的所有元素也存在於集合B 中,則集合A 被認為是集合B 的子集:

示例

以下示例使用“<=”運算子和issubset()函式,並返回兩個集合的子集測試結果:

set1 = {1, 2}
set2 = {1, 2, 3, 4}
set3 = {64, 47, 245, 48}
set4 = {64, 47, 3}
is_subset1 = set1.issubset(set2)  
is_subset2 = set3 <= set4
print ('set1 is a subset of set2:', is_subset1)
print ('set3 is a subset of set4:', is_subset2)

產生的結果如下:

set1 is a subset of set2: True
set3 is a subset of set4: False
廣告