Python - 集合合并



在 Python 中,一个 集合 是一个有序的项目集合。这些项目可以是不同类型的。但是,集合中的项目必须是不可变对象。这意味着,我们只能在集合中包含数字、字符串和元组,而不能包含 列表。Python 的集合类提供了不同的方法来合并集合对象。

Python 集合合并

Python 中合并集合是指将两个或多个集合合并成单个集合。合并集合时,会合并多个集合的元素,同时确保删除重复元素,因为集合不允许重复元素。

这可以通过多种方法实现,例如联合、更新、集合推导式、集合连接、复制和迭代添加。

使用 "|" 运算符合并 Python 集合

"|" 符号(管道)被定义为联合运算符。它执行 A∪B 运算,并返回 A、B 或两者中都存在的项目的集合。集合不允许重复项。

示例

在下面的示例中,我们使用 "|" 运算符对集合 "s1" 和 "s2" 执行联合运算,创建一个新的集合 "s3",其中包含来自两个集合的元素,但不包含重复元素。

s1={1,2,3,4,5}
s2={4,5,6,7,8}
s3 = s1|s2
print (s3)

它将产生以下输出:

{1, 2, 3, 4, 5, 6, 7, 8}

使用 union() 方法合并 Python 集合

集合类具有 union() 方法,该方法执行与 | 运算符相同的操作。它返回一个集合对象,其中包含两个集合中的所有项目,并丢弃重复项。

示例

在此示例中,我们对集合 "s1" 调用 union() 方法,并将集合 "s2" 作为参数传递,这将返回一个新的集合 "s3",其中包含来自两个集合的元素,但不包含重复元素。

s1={1,2,3,4,5}
s2={4,5,6,7,8}
s3 = s1.union(s2)
print (s3)

获得的输出如下:

{1, 2, 3, 4, 5, 6, 7, 8}

使用 update() 方法合并 Python 集合

update() 方法也合并两个集合,就像 union() 方法一样。但是,它不返回新的集合对象。相反,第二个集合的元素将添加到第一个集合中,不允许重复。

示例

下面的例子中,我们使用 `update()` 方法用集合 "s2" 的元素更新集合 "s1",修改 "s1" 使其包含两个集合的元素,但不包含重复元素:

s1={1,2,3,4,5}
s2={4,5,6,7,8}
s1.update(s2)
print (s1)

得到的结果如下所示:

{1, 2, 3, 4, 5, 6, 7, 8}

使用解包运算符连接 Python 集合

在 Python 中,"*" 符号用作解包运算符。解包运算符在内部将集合中的每个元素分配给一个单独的变量。

我们可以使用解包运算符 (*) 通过将多个集合的元素解包到一个新集合中来连接 Python 集合。

示例

在下面的例子中,我们使用集合字面量中的 * 运算符,通过解包集合 "s1" 和 "s2" 的元素来创建一个新的集合 "s3":

s1={1,2,3,4,5}
s2={4,5,6,7,8}
s3 = {*s1, *s2}
print (s3)

生成的输出如下:

{1, 2, 3, 4, 5, 6, 7, 8}

使用集合推导式连接 Python 集合

Python 中的集合推导式是一种简洁的创建集合的方式,它使用可迭代对象,类似于列表推导式,但结果是集合而不是列表。它允许你通过将表达式应用于可迭代对象中的每个项目来生成集合,同时可以选择根据条件过滤项目。

我们可以通过迭代多个集合并将它们的元素添加到一个新集合中来使用集合推导式连接 Python 集合。

示例

在这个例子中,我们使用集合推导式创建一个新的集合 "joined_set"。通过迭代包含 "set1" 和 "set2" 的列表,然后迭代每个集合 "s" 中的每个元素 "x",我们将两个集合的所有元素合并到 "joined_set" 中:

set1 = {1, 2, 3}
set2 = {3, 4, 5}

joined_set = {x for s in [set1, set2] for x in s}
print(joined_set) 

以上代码的输出如下所示:

{1, 2, 3, 4, 5}

使用迭代添加连接 Python 集合

在集合的上下文中,迭代添加是指使用循环或迭代结构将一个集合中的元素迭代地添加到另一个集合中。这允许你将多个集合的元素合并到单个集合中,确保不包含重复元素。

我们可以通过迭代每个集合的元素并将它们添加到一个新集合中来使用迭代添加连接 Python 集合。

示例

在下面的例子中,我们首先初始化一个空集合。然后,我们分别迭代 "set1" 和 "set2" 中的每个元素,使用 `add()` 方法将每个元素添加到名为 "joined_set" 的新集合中:

set1 = {1, 2, 3}
set2 = {3, 4, 5}

# Initializing an empty set to hold the merged elements
joined_set = set()

# Iterating over set1 and adding its elements to the joined set
for element in set1:
   joined_set.add(element)

# Iterating over set2 and adding its elements to the joined set
for element in set2:
   joined_set.add(element)

print(joined_set)  

执行以上代码后,我们将得到以下输出:

{1, 2, 3, 4, 5}
广告