大家好,我是正在实战各种AI项目的程序员晚枫。
今天聊一个Python中经常被忽视的数据结构——集合(set)。
很多人学Python时跳过了它,觉得用列表就够了。但你知道吗?集合的去重功能,一行代码就能搞定,而且速度飞快!
看完这篇文章,你会发现新大陆。
什么是集合?
集合就像数学里的集合概念:
- 无序:没有索引,不能通过位置访问
- 不重复:自动去重,相同的元素只保留一个
- 可变:可以添加、删除元素
创建集合
1 | # 方式1:花括号 |
最常用功能:一键去重
列表去重(传统方法)
1 | numbers = [1, 2, 2, 3, 3, 3, 4, 4, 4, 4] |
集合去重(终极方案)
1 | numbers = [1, 2, 2, 3, 3, 3, 4, 4, 4, 4] |
就这一行!简洁又高效。
集合的关系运算(超实用)
集合最强大的功能是关系运算,处理”谁和谁有交集”这类问题特别方便。
场景:找出共同好友
1 | alice_friends = {'Bob', 'Charlie', 'David'} |
运算符对照表
| 运算符 | 方法 | 含义 |
|---|---|---|
& | intersection() | 交集(共同元素) |
| | union() | 并集(所有元素) |
- | difference() | 差集(在前不在后) |
^ | symmetric_difference() | 对称差集(不共有的) |
实战案例:数据分析中的集合应用
假设你有两个销售数据文件,想找出:
- 两个文件都有的客户
- 只在A文件中的客户
- 总共多少不同客户
1 | # 从Excel读取的客户ID |
用集合,3行代码搞定复杂分析!
集合的其他操作
添加和删除
1 | s = {1, 2, 3} |
判断操作
1 | a = {1, 2, 3} |
什么时候用集合?
✅ 适合用集合的场景
- 需要去重
- 判断成员是否存在(比列表快)
- 求交集、并集、差集
- 需要确保元素唯一性
❌ 不适合用集合的场景
- 需要保持顺序(集合无序)
- 需要通过索引访问
- 需要存储可变对象(如列表)
推荐:AI Python零基础实战营
想系统学习Python数据结构?
课程内容:
- ✅ Python基础语法
- ✅ 四大数据结构详解(列表、字典、集合、元组)
- ✅ 算法与复杂度分析
- ✅ 数据处理实战
🎁 限时福利:送《Python编程从入门到实践》实体书
👉 点击了解详情
相关阅读
PS:集合是Python最被低估的数据结构之一。记住一句话:要去重用set,要快用set,要做关系运算还是用set!
