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

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

你想了解 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. 核心特性:集合自动去重、查找效率高,适合去重、成员判断、集合关系分析场景。
相关文章
|
7月前
|
监控 安全 算法
从智慧医疗到多元商业场景的室内人员定位技术应用详解
GPS室内失效?蓝牙信标定位技术应运而生!通过信标部署、信号接收与算法解算,实现1–5米高精度定位。已广泛应用于智慧医疗(导诊/设备管理)、文旅(智能导览)、工业(安全监控)、商业(寻车/精准营销)等场景,以低功耗、低成本赋能空间智能化升级。如果您想进一步了解室内人员定位技术的技术和案例,欢迎关注、评论留言~也可搜索维构lbs智能定位。
|
8月前
|
人工智能 弹性计算 安全
2026年阿里云OpenClaw一键快速部署教程,轻松搭建专属AI助理!
2026年,打造专属AI数字员工超简单:仅需一台阿里云服务器,几分钟用OpenClaw一键部署,接入百炼大模型,即可实现文档编写、资料检索、脚本运行、报表整理等智能办公能力。本地优先、安全可控、7×24在线。
994 5
|
8月前
|
人工智能 自然语言处理 JavaScript
Deepseek百万 Token 窗口的极限实践:一位非专业人员使用实录
摘要:此文非技术评测,而是一份关于Deepseek最新百万token窗口的真实工程“长程思考”实录。本人非AI与计算机专业,从事生物医学与心理学工作,人文爱好者。利用十天时间,通过浏览器deepseek云端模型百万token对话窗口,实现了一套从本地环境设置、工具流搭建、数据建库与向量化的整个工程。本文记录了主要的过程与指标。 时间:2026 年 2 月
|
8月前
|
人工智能 自然语言处理 安全
阿里云1分钟部署OpenClaw解锁AI Agent 助手新潜力+ClawHub热门OpenClaw Skills实战指南
2026年,OpenClaw以“自托管AI智能体”的定位席卷科技圈,但很多用户部署后却陷入“闲置困境”——究其原因,OpenClaw本身仅为功能底座,真正让它从“工具”变身“生产力助手”的关键,是ClawHub(OpenClaw官方技能商店)中的各类扩展技能。作为OpenClaw的公共Skill注册中心,ClawHub汇聚了数千个场景化技能,覆盖开发协作、内容处理、自动化办公等全领域,却也因开放特性暗藏安全风险与使用门槛。
2603 12
|
Java 应用服务中间件
WAS生成及分析javacore和heapdump
WAS生成及分析javacore和heapdump
|
8月前
|
人工智能 监控 机器人
2026年零门槛部署 OpenClaw(Clawdbot)接入A股数据,实现24小时股票分析保姆级教程
在AI赋能金融分析的浪潮中,OpenClaw(原Clawdbot/Moltbot)凭借开源灵活的架构,成为个人投资者打造专属智能分析助手的首选。通过接入A股实时数据,它能实现24小时市场监控、涨跌预警、潜力股推荐等核心功能,彻底解放人工盯盘的繁琐。而阿里云的稳定部署环境,更让这套系统实现全天候不间断运行,成为真正的“金融AI助手”。 本文基于OpenClaw v2026.1.25稳定版与QVeris免费A股数据接口,详细拆解阿里云OpenClaw部署步骤、A股数据接入流程、高级分析功能配置及多平台联动技巧,所有代码命令均可直接复制复用,即使无技术基础也能在1小时内完成从部署到实战的全流程。
11172 12
|
6月前
|
虚拟化 Python
MCP服务器开发演示项目总结(llms.txt)
在 mcp 客户端中添加 mcp 服务器,接着会调用 add_a_b 功能,实现大模型对于该函数的调用,达成类似于 12+34 之类的计算,确保输出结果。
261 0
|
7月前
|
人工智能 Linux API
测试小白的第一课:从零安装OpenClaw,亲手跑通第一个AI智能体
本教程专为小白设计,手把手带你零基础安装并运行OpenClaw智能体。涵盖环境准备(Win/macOS/Linux、Python 3.9–3.11)、虚拟环境创建、OpenClaw安装、API密钥配置,以及首个天气查询智能体的完整实践,附常见问题排障指南。
|
7月前
|
存储 人工智能 监控
CoPaw是什么?与OpenClaw有什么区别?
2026年个人智能体爆发,阿里云CoPaw与开源OpenClaw成焦点。前者主打“协同工作台”,支持一键部署、长期记忆与开箱即用技能,面向职场人;后者是极客向AI实验平台,强调本地优先与高度定制。二者代表便捷性与自由度的路线之争。
4959 11