当前位置:首页>python>零基础学Python第十三课:数据结构之“集合(Set)”

零基础学Python第十三课:数据结构之“集合(Set)”

  • 2026-09-08 05:18:24
零基础学Python第十三课:数据结构之“集合(Set)”

🌟 导读 欢迎来到 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. 集合的“增删”操作

既然是数据结构,当然少不了增加和删除的操作。

  • ➕ 增(添加元素):.add()

    fruits = {"苹果", "香蕉"}fruits.add("西瓜")fruits.add("苹果")  # 试图添加已经存在的东西print(fruits)      # 输出:{'香蕉', '苹果', '西瓜'}(重复添加的苹果直接被无视了)

  • 🗑️ 删(移除元素):.remove() 与隐藏神器 .discard()

    fruits.remove("香蕉")  # 正常删除香蕉

    💡 进阶实用技巧:安全删除如果你用 .remove("草莓"),但集合里偏偏没有草莓,程序就会直接报错崩溃(KeyError)。 为了代码的安全,老手更喜欢用 .discard() 方法:

    # 即使集合里没有“草莓”,discard 也不会报错,而是当做无事发生fruits.discard("草莓") print("程序依然坚挺,没有崩溃!")

🤝 3. 找茬达人:交集 / 并集 / 差集

如果你初中数学还没忘光,对韦恩图(几个圈圈互相交叠)肯定有印象。Python 的集合完美支持这种高级数学运算,极其适合用来做**“找共同好友”或“对比差异”**的业务!

假设我们有两个兴趣小组:

group_A = {"张三", "李四", "王五"}  # 喜欢打篮球的人group_B = {"李四", "王五", "赵六"}  # 喜欢踢足球的人

  • 🎯 交集(&):找共同点(两项都喜欢的人)

    print(group_A & group_B)  # 输出:{'李四', '王五'} 

  • 🌍 并集(|):大融合(只要有任何一项爱好的人)

    print(group_A | group_B)  # 输出:{'张三', '李四', '王五', '赵六'} (自动去重了)

  • ✂️ 差集(-):找不同(只喜欢篮球,不喜欢足球的人)

    print(group_A - group_B)  # 输出:{'张三'} (把 A 里面属于 B 的人剔除掉)

(注:用这些简单的数学符号处理社交网络数据,简直不要太爽!)

📝 总结时刻

今天我们彻底拿下了数据结构中的最后一块拼图——集合(Set):

  • 它是自带去重魔法的收纳盒(巧妙利用 list(set()) 给列表去重)。

  • 掌握了增加元素的 .add(),并学会了安全删除的 .discard()。

  • 学会了极其强大的集合运算:用 & 找交集,用 | 找并集,用 - 找差集。

至此,Python 中最重要的四大基础数据结构(列表、元组、字典、集合)咱们就全部通关啦!🎉

最新文章

随机文章