Python - 联接 Sets



在 Python 中,集合是项目的有序集合。这些项目可能属于不同的类型。但是,集合中的项必须是不可变对象。这意味着,我们只能在集合中包含数字、字符串和元组,而不能在 List 中包含。Python 的 set 类具有不同的 join set 对象的规定。

Python 中的联接集

Python 中的联接集是指将两个或多个集合并为一个集。在联接集时,可以合并多个集的元素,同时确保删除重复的元素,因为集不允许重复的元素。

这可以使用各种方法来实现,例如 union、update、set comprehension、set concatenation、copy iterative addition

使用 “|” 连接 Python 集算子

“|” 符号 (竖线) 定义为联合运算符。它执行 A∪B 操作并返回 A、B 或两者中的一组项目。Set 不允许重复项。

在下面的示例中,我们使用 “|” 运算符对集合 “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 集

set 类具有 union() 方法,该方法执行与 |算子。它返回一个 set 对象,该对象包含两个 set 中的所有项目,并丢弃重复项。

在此示例中,我们在集合 “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() 方法联接这两个集合。但是,它不会返回新的 set 对象。相反,第二个集的元素被添加到第一个中,不允许重复。

在下面的示例中,我们使用 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}

使用 unpacking 运算符联接 Python 集

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

我们可以使用 unpacking 运算符 (*) 将多个集合的元素解包到一个新集合中,从而联接 Python 集合。

在以下示例中,我们将创建一个新集 “s3”,方法是在集合文本中使用 * 运算符解压缩集合 “s1” 和 “s2” 的元素 −


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 集合。

在这个例子中,我们使用 set comprehension 创建一个新的 set “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}