Tags: 数据类型 AI 人工智能

Python中集合(Set)合并与常用集合运算方法

前面的文章《Python集合(Set)数据类型完全指南》介绍了集合的基础知识与特性。本文将进一步讲解如何合并多个集合,包括联合(union)、更新(update)、交集(intersection)、差集(difference)、对称差集(symmetric_difference)等多种方法及其区别。

1. 集合的联合(union方法与“|”操作符)

union()方法返回一个新的集合,包含所有集合的元素(自动去除重复):

set1 = {"a", "b", "c"}
set2 = {1, 2, 3}
set3 = set1.union(set2)
print(set3)
# 输出示例: {'a', 1, 2, 3, 'b', 'c'}

你也可以使用|符号代替union(),但仅适用于集合之间:

set3 = set1 | set2
print(set3)
# 输出示例: {'a', 1, 2, 3, 'b', 'c'}

多个集合合并

你可以一次性合并多个集合:

set1 = {"a", "b"}
set2 = {1, 2}
set3 = {"x", "y"}
myset = set1.union(set2, set3)
print(myset)
# 输出示例: {1, 2, 'a', 'x', 'b', 'y'}

集合与其他可迭代对象的合并

union()方法允许合并元组、列表等,而|则不行:

x = {"a", "b"}
y = (1, 2)
z = x.union(y)
print(z)
# 输出示例: {1, 2, 'a', 'b'}

2. update()方法直接更新原集合

update()方法直接修改原集合,添加另一个集合或可迭代对象的所有元素:

set1 = {"a", "b"}
set2 = {1, 2}
set1.update(set2)
print(set1)
# 输出示例: {1, 2, 'a', 'b'}

3. intersection()方法与交集运算

交集是返回集合中共有的元素:

set1 = {"pingguo", "xiangjiao", "yingtao"}
set2 = {"google", "microsoft", "pingguo"}
set3 = set1.intersection(set2)
print(set3)
# 输出: {'pingguo'}

或使用&符号:

set3 = set1 & set2
print(set3)
# 输出: {'pingguo'}

4. difference()方法与差集运算

差集只返回集合中不在其他集合里的元素:

set1 = {"pingguo", "xiangjiao", "yingtao"}
set2 = {"google", "pingguo"}
set3 = set1.difference(set2)
print(set3)
# 输出示例: {'xiangjiao', 'yingtao'}

或使用-符号:

set3 = set1 - set2
print(set3)
# 输出示例: {'xiangjiao', 'yingtao'}

5. symmetric_difference()对称差集运算

对称差集返回两个集合中不同的元素(去除共有元素):