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
广告
© . All rights reserved.