python: union()函数用法

发布于:2025-05-14 ⋅ 阅读:(13) ⋅ 点赞:(0)

在 Python 中,union() 是集合(set)类型的内置方法,用于返回两个或多个集合的并集(即所有元素的合集,自动去重)。以下是它的用法详解:


1. 基本语法

python

复制

下载

set.union(*others)
# 或
set1 | set2 | set3 ... 
  • 参数others 可以是其他集合或任何可迭代对象(如列表、元组等)。

  • 返回值:返回一个新集合,包含所有参与合并的集合中的唯一元素。

  • 不修改原集合:原集合内容保持不变。


2. 基础用法示例

python

复制

下载

# 定义两个集合
set_a = {1, 2, 3}
set_b = {3, 4, 5}

# 使用 union() 方法
result_union = set_a.union(set_b)
print(result_union)  # 输出: {1, 2, 3, 4, 5}

# 使用 | 运算符
result_operator = set_a | set_b
print(result_operator)  # 输出: {1, 2, 3, 4, 5}

3. 合并多个集合

union() 支持一次合并多个集合或可迭代对象:

python

复制

下载

set_c = {5, 6, 7}
list_d = [7, 8, 9]

# 合并多个集合和列表
combined = set_a.union(set_b, set_c, list_d)
print(combined)  # 输出: {1, 2, 3, 4, 5, 6, 7, 8, 9}

4. 与其他数据类型的交互

union() 可以接受非集合类型(如列表、元组、字符串等)作为参数:

合并列表、元组

python

复制

下载

set_num = {1, 2}
list_str = ["a", "b"]
tuple_mix = (2, "c")

# 合并集合、列表、元组
result_mixed = set_num.union(list_str, tuple_mix)
print(result_mixed)  # 输出: {1, 2, 'a', 'c', 'b'}

合并字符串

「字符串」时可迭代类型,可以跟集合合并。

set1 = {1, 2, 3}

new_set = set1.union('abc')

print(new_set)

输出:

{1, 2, 3, 'a', 'c', 'b'}

合并字典

「字典」也是可迭代类型,可以跟集合合并;与其他类型不同的是,字典只合并键,不合并值。

set1 = {1, 2, 3}

dict1 = {'key1': 1, 'key2': 2}

new_set = set1.union(dict1)

print(new_set)

输出:

{1, 2, 3, 'key1', 'key2'}

合并bytes类型

「bytes」也是可迭代类型,可以跟集合合并;但bytes是字节流,字符会转换后再合并。

set1 = {1, 2, 3}

bytes1 = b'abc'

new_set = set1.union(bytes1)

print(new_set)

输出:

{1, 2, 3, 97, 98, 99}


5. 与 update() 的区别

  • union():返回新集合,不修改原集合

  • update():在原集合上直接添加元素,修改原集合

python

复制

下载

set_x = {1, 2}
set_y = {3, 4}

# union() 示例
new_set = set_x.union(set_y)
print(set_x)  # 原集合不变,输出: {1, 2}
print(new_set)  # 输出: {1, 2, 3, 4}

# update() 示例
set_x.update(set_y)
print(set_x)  # 原集合被修改,输出: {1, 2, 3, 4}

6. 常见问题

错误用法

python

复制

下载

# 错误:参数需为可迭代对象,不能是单个非集合元素
set_a.union(3)  # TypeError: 'int' object is not iterable

# 正确:将数字放入可迭代对象中
set_a.union({3})
集合的无序性

集合的元素顺序是未定义的,输出时可能与添加顺序不同:

python

复制

下载

print({3, 1, 2} | {5, 4})  # 可能输出: {1, 2, 3, 4, 5}

7. 实际应用场景

  1. 数据去重:合并多个数据源并去除重复项。

  2. 标签系统:合并用户选择的多个标签集合。

  3. 数据库查询:模拟 SQL 中 UNION 操作。


总结

  • union() 是集合操作中高效的去重合并工具。

  • 支持合并多个集合或可迭代对象。

  • 若需保留元素顺序,需将结果转为列表后排序。


网站公告

今日签到

点亮在社区的每一天
去签到