🌟 导读 欢迎来到 Python 学习的第十三站。
试想一个场景:公司搞抽奖活动,有一个装了 10000 个报名者名字的列表,但有些人为了提高中奖率,偷偷提交了好几次。作为程序员,你怎么快速把重复的名字剔除掉? 如果你用列表配合 for 循环去挨个检查,不仅代码长,电脑运行还慢。
今天,我们要请出数据结构里的“去重核武器”——集合(Set)。学会它,这类问题只需一行代码就能搞定!🚀
🪄 1. 认识集合:天生自带“去重”魔法
集合和字典一样,也是用大括号 {} 包起来的。但区别在于,字典装的是“键值对”(标签: 内容),而集合里面只有单纯的值,并且绝对不允许有重复的内容!
# 创建一个装了重复数字的集合my_set = {1, 2, 2, 3, 3, 3}# 见证奇迹!重复的元素全被自动消灭了print(my_set) # 输出结果:{1, 2, 3}
💡 进阶实用技巧:一秒给列表去重在工作中,我们最常用的操作是“列表转集合再转回列表”。比如上面抽奖名单去重的需求,极其优雅的写法是这样的:
names_list = ["张三", "李四", "张三", "王五", "李四"]# 先用 set() 把列表变成集合(自动去重),再用 list() 变回列表clean_list = list(set(names_list))print(clean_list)# 输出:['张三', '王五', '李四'] (注:集合是无序的,所以出来的顺序可能会变)
⚠️ 必踩坑预警:怎么创建一个“空集合”?如果你想建一个空列表,写 [];建一个空字典,写 {}。 那建一个空集合能写 {} 吗?绝对不行! 因为 {} 已经被字典抢占了!
fake_set = {} # 这其实是一个空字典!real_set = set() # 这才是真正的空集合,一定要死记硬背下来!
⚔️ 2. 集合的“增删”操作
既然是数据结构,当然少不了增加和删除的操作。
🤝 3. 找茬达人:交集 / 并集 / 差集
如果你初中数学还没忘光,对韦恩图(几个圈圈互相交叠)肯定有印象。Python 的集合完美支持这种高级数学运算,极其适合用来做**“找共同好友”或“对比差异”**的业务!
假设我们有两个兴趣小组:
group_A = {"张三", "李四", "王五"} # 喜欢打篮球的人group_B = {"李四", "王五", "赵六"} # 喜欢踢足球的人
(注:用这些简单的数学符号处理社交网络数据,简直不要太爽!)
📝 总结时刻
今天我们彻底拿下了数据结构中的最后一块拼图——集合(Set):
它是自带去重魔法的收纳盒(巧妙利用 list(set()) 给列表去重)。
掌握了增加元素的 .add(),并学会了安全删除的 .discard()。
学会了极其强大的集合运算:用 & 找交集,用 | 找并集,用 - 找差集。
至此,Python 中最重要的四大基础数据结构(列表、元组、字典、集合)咱们就全部通关啦!🎉