集合常用的操作方法有哪些?

简介: 集合常用的操作方法有哪些?

你想了解 Python 集合(set)的常用操作方法,我会按功能分类整理这些核心方法,并结合示例说明用法,让你能快速掌握各类操作的适用场景。

一、元素添加方法

这类方法用于向集合中新增元素,核心是保证元素唯一性(自动去重)。

方法 作用 示例
add() 添加单个不可变元素,元素已存在则无操作 ```python

fruits = {"apple", "banana"}
fruits.add("cherry") # {'apple', 'banana', 'cherry'}
fruits.add("apple") # 无变化(去重)
| | `update()` | 添加**多个**元素(接收可迭代对象:列表、元组、字符串等),自动去重 |python
fruits.update(["orange", "grape"]) # 添加列表
fruits.update(("pear", "apple")) # 添加元组(apple 去重)

结果:{'apple', 'banana', 'cherry', 'orange', 'grape', 'pear'}

``` |

二、元素删除方法

这类方法用于移除集合中的元素,重点注意「元素不存在时是否报错」的区别。

方法 作用 注意事项 示例
remove() 删除指定元素 元素不存在会抛出 KeyError ```python

fruits = {"apple", "banana"}
fruits.remove("banana") # 成功删除

fruits.remove("orange") # 报错:KeyError: 'orange'

| | `discard()` | 删除指定元素 | 元素不存在也**不会报错**(推荐优先使用) |python
fruits.discard("apple") # 成功删除
fruits.discard("orange") # 无操作,不报错
| | `pop()` | 随机删除并返回一个元素 | 集合无序,无法预测删除哪个;空集合调用会报错 |python
nums = {1, 2, 3}
removed = nums.pop() # 随机返回 1/2/3 中的一个
print(nums) # 剩余两个元素
| | `clear()` | 清空集合所有元素,变为空集合 | - |python
nums.clear() # nums 变为 set()
``` |

三、集合运算方法

这类方法对应数学中的集合操作(并集、交集、差集等),分为「返回新集合」和「原地修改集合」两类。

1. 返回新集合(不修改原集合)

方法 等价运算符 作用 示例
union() ` ` 求两个集合的并集(所有元素,去重) ```python

a = {1,2,3}; b = {3,4,5}
print(a.union(b)) # {1,2,3,4,5}
print(a | b) # 等价写法
| | `intersection()` | `&` | 求两个集合的**交集**(共同元素) |python
print(a.intersection(b)) # {3}
print(a & b) # 等价写法
| | `difference()` | `-` | 求**差集**(属于a但不属于b的元素) |python
print(a.difference(b)) # {1,2}
print(a - b) # 等价写法
| | `symmetric_difference()` | `^` | 求**对称差集**(只在一个集合中出现的元素) |python
print(a.symmetric_difference(b)) # {1,2,4,5}
print(a ^ b) # 等价写法
``` |

2. 原地修改集合(直接修改原集合,无返回值)

方法 作用 示例
intersection_update() 原地保留交集,修改原集合 ```python

a = {1,2,3}; b = {3,4,5}
a.intersection_update(b)
print(a) # {3}(原a被修改)
| | `difference_update()` | 原地保留差集,修改原集合 |python
a = {1,2,3}; b = {3,4,5}
a.difference_update(b)
print(a) # {1,2}(原a被修改)
| | `symmetric_difference_update()` | 原地保留对称差集,修改原集合 |python
a = {1,2,3}; b = {3,4,5}
a.symmetric_difference_update(b)
print(a) # {1,2,4,5}(原a被修改)
``` |

四、集合关系判断方法

用于判断两个集合的包含、相交关系。

方法 等价运算符 作用 示例
issubset() <= 判断当前集合是否是另一个集合的子集 ```python

a = {2,3}; b = {1,2,3,4}
print(a.issubset(b)) # True(a的所有元素都在b中)
print(a <= b) # 等价写法
| | `issuperset()` | `>=` | 判断当前集合是否是另一个集合的**超集** |python
print(b.issuperset(a)) # True(b包含a的所有元素)
print(b >= a) # 等价写法
| | `isdisjoint()` | - | 判断两个集合是否**无交集**(没有共同元素) |python
c = {5,6}
print(a.isdisjoint(c)) # True(a和c无共同元素)
print(a.isdisjoint(b)) # False(有交集)
``` |

五、其他常用操作

方法/函数 作用 示例
copy() 浅拷贝集合,生成新集合 ```python

a = {1,2,3}; b = a.copy()
b.add(4) # a 仍为 {1,2,3},b 为 {1,2,3,4}
| | `len()` | 获取集合元素个数 |python
print(len({1,2,3})) # 3
| | `in`/`not in` | 判断元素是否在集合中(效率远高于列表) |python
print(2 in {1,2,3}) # True
print(4 not in {1,2,3}) # True
``` |

总结

  1. 添加元素add()(单个)、update()(多个);
  2. 删除元素:优先用 discard()(不报错),明确元素存在时用 remove(),随机删除用 pop()
  3. 集合运算:并集(union()/|)、交集(intersection()/&)是最常用的两类运算;
  4. 核心特性:集合自动去重、查找效率高,适合去重、成员判断、集合关系分析场景。
相关文章
|
3天前
|
人工智能 Linux API
从0到1玩转OpenClaw:保姆级部署流程(阿里云+Windows/Mac/Linux)+ 免费大模型配置及避坑指南
2026年,AI技术的核心变革已从“生成内容”深度转向“落地执行”,而OpenClaw(前身为Clawdbot、Moltbot)作为开源AI自动化代理引擎的领军者,正以“本地优先、强执行能力、多端适配”的核心优势,成为个人与企业构建“自托管式数字员工”的首选工具。截至2026年3月,其GitHub星标已突破28万,社区贡献者超378人,技能生态覆盖办公、开发、生活等全场景,真正实现了从“对话式建议”到“自动化执行”的跨越,彻底打破了传统AI“只说不做”的局限。
452 168
|
6天前
|
缓存 负载均衡 Linux
Linux内核驱动开发的技术核心精要
本文精讲嵌入式Linux驱动开发五大核心:并发同步(自旋锁/mutex等)、中断分层(顶/底半部与亲和性)、DMA内存管理(一致性/流式映射与屏障)、设备树与驱动模型、调试移植技巧(ftrace/kgdb等),适配Linux 6.13新特性,助力开发者写出健壮高效驱动。(239字)
342 164
|
21天前
|
存储 安全 前端开发
编写加密解密工具函数时,如何处理密钥的安全性?
编写加密解密工具函数时,如何处理密钥的安全性?
320 153
|
21天前
|
监控 安全 前端开发
如何定义后端安全接口的规范?
如何定义后端安全接口的规范?
360 153
|
3天前
|
人工智能 机器人 Linux
【最新】5分钟搞定“养虾”:OpenClaw阿里云/本地部署+大模型API配置+QQ/飞书等多平台集成及避坑指南
2026年,开源AI智能体OpenClaw(曾用名Clawdbot、Moltbot,昵称“龙虾”)凭借“低门槛部署、多平台联动、强执行能力”持续爆红,GitHub星标突破23万+。其最大亮点在于支持Telegram、QQ、飞书、钉钉等主流聊天工具无缝对接,无需专门APP即可通过自然语言下达指令,实现文件整理、日程管理、自动化脚本执行等多样化任务。
421 170
|
3天前
|
人工智能 JavaScript API
【最新版】OpenClaw(Clawdbot)保姆级搭建教程(阿里云/本地):配置免费大模型+10个必装SKill+避坑指南
2026年,OpenClaw(昵称“龙虾”)已成为开源AI智能体领域的“现象级工具”,但很多用户却陷入“装了不用”的困境——明明部署了最新版本,却只用来陪聊、查天气,完全浪费了其“自动化生产力工具”的核心价值。其实,OpenClaw的真正威力不在基础功能,而在社区生态中的“Skill(技能插件)”——就像顶配电脑需要装专业软件才能发挥性能,OpenClaw只有搭配优质Skill,才能从“陪聊机器人”变身“全能打工人”。
509 162
|
21天前
|
存储 算法 安全
加密和解密函数应用到Pinia状态管理的具体步骤是什么?
加密和解密函数应用到Pinia状态管理的具体步骤是什么?
286 159
|
3天前
|
人工智能 弹性计算 Linux
【“养虾”攻略】一人顶一团队!OpenClaw深度解析(阿里云/本地部署+百炼API配置+个体创业者/普通人必备skill指南)
“你养虾了吗?”——2026年年初,这句问候成为AI圈最流行的社交暗号。一只名为OpenClaw的“电子龙虾”(社区昵称)以近乎野蛮生长的速度席卷全球:GitHub星标数突破27万,全球独立部署实例超100万,增长速度达到当年云原生巨头Kubernetes的18倍,连特斯拉前AI负责人Andrej Karpathy都惊呼它“最接近技术奇点”。
633 283
|
21天前
|
存储 前端开发 JavaScript
如何避免密钥在前端硬编码?
如何避免密钥在前端硬编码?
346 154
|
21天前
|
存储 安全 前端开发
前后端分离项目中,前端如何安全地使用后端提供的安全接口获取密钥?
前后端分离项目中,前端如何安全地使用后端提供的安全接口获取密钥?
319 158

热门文章

最新文章