当前位置: 首页 > news >正文

python: union()函数用法

在 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() 是集合操作中高效的去重合并工具。

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

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

http://www.xdnf.cn/news/424981.html

相关文章:

  • 解决 MinIO 对象存储“AccessDenied”问题及 Docker 操作全解析
  • 《Docker 入门与进阶:架构剖析、隔离原理及安装实操》
  • 【认知思维】沉没成本谬误:为何难以放弃已投入的资源
  • jenkins流水线常规配置教程!
  • libMemcached 库下载记录
  • SQL 中 INSTR 函数简介及 截取地址应用
  • 【python】—conda新建python3.11的环境报错
  • 第五十七篇 Java接口设计之道:从咖啡机到智能家居的编程哲学
  • 本地部署ollama及deepseek(linux版)
  • ssl 中 key 和pem 和crt是什么关系
  • 配置 Spark 以 YARN 模式
  • 笔试模拟 day9
  • 深入理解Java编写泛型的方法!
  • 杰理-701-手表sdk无法电脑连接经典蓝牙
  • 微信小程序的开发及问题解决
  • 游戏资源传输服务器
  • 第三章 初始化配置(一)
  • GitHub 趋势日报 (2025年05月12日)
  • 电能质量扰动信号信号通过hilbert变换得到瞬时频率
  • 2025.05.11拼多多机考真题算法岗-第一题
  • MCU开发学习记录14* - 8080学习与实践(HAL库) - 控制LCD屏幕显示中英文、图片 - STM32CubeMX
  • 【Axure视频教程】中继器表格间批量控制和传值
  • 艺考之神余嘉诚话剧舞台首秀《屈原辞》 倾情演绎楚辞风骨
  • [Java][Leetcode middle] 45. 跳跃游戏 II
  • 音频转文字-在线工具包及使用记录
  • 提示词设计模板(基于最佳实践)
  • Datawhale PyPOTS时间序列5月第1次笔记
  • 2025 3D工业相机选型及推荐
  • Elecron 相关介绍以及常见的面试问题
  • 【MapReduce入门】深度解析MapReduce:定义、核心特点、优缺点及适用场景