本篇我们介绍一下如何利用集合的 union() 方法或者并集操作符(|)将两个或多个集合进行合并。
集合的并集
两个集合的并集结果是一个新的集合,包含了这两个集合中不重复的所有元素。
以下是两个集合:
s1 = {'Python', 'Java'}
s2 = {'C#', 'Java'}
集合 s1 和 s2 的并集如下:
{'Java','Python', 'C#'}
通常我们使用文氏图(Venn diagram)解释集合的并集。例如:
union() 方法
使用 union() 方法合并集合的语法如下:
new_set = set.union(another_set, ...)
以下示例使用 union() 方法合并集合 s1 和 s2:
s1 = {'Python', 'Java'}
s2 = {'C#', 'Java'}
s = s1.union(s2)
print(s)
输出结果如下:
{'Python', 'Java', 'C#'}
并集操作符
合并两个集合的另一种方法就是使用并集操作符(|):
new_set = set1 | set2
并集操作符返回了集合 set1 和 set2 中不重复的所有元素。
以下示例使用并集操作符合并集合 s1 和 s2:
s1 = {'Python', 'Java'}
s2 = {'C#', 'Java'}
s = s1 | s2
print(s)
输出结果如下:
{'Java', 'C#', 'Python'}
以下示例返回了多个集合的并集:
s1 = {1, 2, 3}
s2 = {2, 3, 4}
s2 = {3, 4, 5}
s = s1 | s2 | s3
print(s)
输出结果如下:
```python
{1, 2, 3, 4, 5}
两种方法比较
事实上,union() 方法支持一个或多个可遍历对象作为参数,将它们转换为集合之后执行合并操作。
以下示例使用 union() 方法将一个集合与列表进行合并:
rates = {1, 2, 3}
ranks = [2, 3, 4]
ratings = rates.union(ranks)
print(ratings)
输出结果如下:
{1, 2, 3, 4}
另一方面,并集操作符(|)只能对集合进行操作,不支持其他的可遍历对象。以下示例返回了一个错误:
rates = {1, 2, 3}
ranks = [2, 3, 4]
ratings = rates | ranks
TypeError: unsupported operand type(s) for |: 'set' and 'list'
总之,union() 方法支持可遍历对象,并集操作符只支持集合。
总结
- 集合的并集结果包含了两个集合中不重复的所有元素。
- 集合的 union() 方法和并集操作符(|)都可以用于合并两个或多个集合。
- union() 方法支持可遍历对象,并集操作符只支持集合。