跳转至

6.3 数据类型进阶——集合

内容梗概

本课简要介绍集合(set),老师明确说集合可展开讲很多,但本阶段只讲一个最常见的用法——去重,其余在后续实战中逐步拓展。讲解了集合"元素唯一、无序"的特点、两种创建方式(set() 与花括号)、为什么不能用空花括号创建空集合,以及并集/交集/差集/对称差集等集合运算的存在(不逐一展开)。

知识点详解

集合的核心特点与去重用法(约 00:23)

  • 集合内元素**唯一**,且**无序**保存。
  • 去重套路(约 01:00):list(set(列表)) ——先把列表转成集合,重复元素自动被去掉,再转回列表即得去重结果。
  • 注意:由于集合无序,去重后**顺序会变化**;如需顺序可再 sort() 排序恢复。
  • 实际应用场景(约 02:17):例如学了文件操作之后,想知道两个文件夹(如两个存照片的文件夹 A、B)里有没有同名文件——把两边文件名用列表合并,再 set 去重,得到唯一文件名清单后统一复制到新文件夹。后续会有例子带着做。

集合的创建(约 03:03)

  • set():创建**空集合**,推荐方式。
  • {元素1, 元素2, ...}:花括号创建含元素的集合。
  • 不能用 {} 创建空集合(约 03:25):因为字典也用花括号,且字典在 Python 中更常用,{} 会被优先当作空字典而非空集合。为避免歧义,创建集合(尤其空集合)一律用 set()。

集合运算(约 04:23,点到为止)

  • 判断是否有交集、**并集、交集、差集、对称差集**等操作都支持。
  • 老师未逐一演示,建议自己画两个圆(韦恩图)理解含义;后续课程用到时再展开讲。

示例与演示

  • 用含重复名字(两个"罗翔")的列表演示:set(列表) 去重 → 再转回 list → 打印,顺序改变;可用排序恢复顺序。
  • 演示花括号创建集合并用 type 确认;强调 {} 是字典不是集合。
  • (本课无完整代码练习,具体综合运用——签到名单差集的例子在 6.4 课的混合示例中演示。)

重点与难点

  • 去重三件套:list(set(lst)),记住顺序会乱。
  • {} 是空**字典**不是空集合;空集合必须写 set()。
  • 集合元素无序,不要依赖取出顺序。
  • 集合运算(交/并/差/对称差集)本课只介绍概念,后续用到再展开。

关联内容

  • 紧承 6.1 列表(去重的对象就是列表)、6.2 元组与 range。
  • 与 6.4 字典紧密相关:创建语法的歧义正是因为字典也用花括号;6.4 的混合示例中用集合差集求"未签到学生名单"。
  • 预告后续章节:文件操作(文件夹去重实例)、更多集合实战用法。