导航菜单

  • 1.Python介绍
  • 2.Python解释器
  • 3.安装Python
  • 4.VSCode开发Python
  • 5.print
  • 6.进制
  • 7.编码
  • 8.Unicode2UTF8
  • 9.整数类型
  • 10.字符串类型
  • 11.布尔类型
  • 12.变量与内存
  • 13.浮点类型
  • 14.注释
  • 15.if条件
  • 16.while循环
  • 17.运算符
  • 18.输入
  • 19.列表
  • 20.元组
  • 21.集合
  • 22.字典
  • 23.for循环
  • 21.1 集合是什么?
  • 21.2 创建集合
  • 21.3 增删与查询
  • 21.4 集合运算
  • 21.5 遍历
  • 21.6 列表 vs 集合:何时用
  • 21.7 项目开发要点

21.1 集合是什么? #

集合是无序、元素唯一的可变容器。没有索引,不能按位置访问。

tags = {"python", "web", "api"}
# 重复元素会自动去重
print({1, 2, 2, 3})    # {1, 2, 3}

元素须为不可变类型(数字、字符串、元组等);列表、字典不能放进集合。

21.2 创建集合 #

nums = {1, 2, 3}
empty = set()          # 空集合必须用 set()
# {} 是空字典,不是集合

# 从列表去重(项目里很常见)
ids = [1, 2, 2, 3, 3]
unique_ids = list(set(ids))

21.3 增删与查询 #

方法 作用
add(x) 添加一个元素
update(iterable) 批量添加
discard(x) 删除元素,不存在也不报错
remove(x) 删除元素,不存在抛 KeyError
s = {"a", "b"}
s.add("c")
print("a" in s)        # True,成员检测很快
s.discard("a")         # 安全删除
print("a" in s)        # True,成员检测很快
print(len(s))

21.4 集合运算 #

用于标签交集、权限对比、数据去重对比等:

运算 写法 含义
并集 a 或 b 或 a.union(b) 所有元素
交集 a & b 或 a.intersection(b) 共有元素
差集 a - b 或 a.difference(b) 在 a 不在 b
对称差 a ^ b 只在其中一个里
viewed = {"home", "cart", "pay"}
purchased = {"cart", "pay"}
# 并集
print("并集:", viewed | purchased)
print("并集 (union):", viewed.union(purchased))

# 交集
print("交集:", viewed & purchased)
print("交集 (intersection):", viewed.intersection(purchased))

# 差集
print("差集:", viewed - purchased)
print("差集 (difference):", viewed.difference(purchased))

# 对称差
print("对称差:", viewed ^ purchased)

21.5 遍历 #

集合无序,for 遍历顺序不固定:

for tag in tags:
    print(tag)

21.6 列表 vs 集合:何时用 #

需求 用
有序、可重复、按索引 列表
去重、快速 in 判断 集合
并/交/差运算 集合

21.7 项目开发要点 #

  1. 去重:list(set(items));若需保留顺序,用 dict.fromkeys(items) 等(后续可学)
  2. 成员判断:大量 ID 是否已存在,用 set 比 list 快
  3. 空集合:set(),不要写 {}
  4. 不能放列表当元素:嵌套结构先去重键或转元组/frozenset
  5. 业务里常用:标签集合、权限集合、两批用户 ID 的交集/差集
  6. 需要顺序或重复:仍用列表,不要强行用集合
← 上一节 20.元组 下一节 22.字典 →

访问验证

请输入访问令牌

Token不正确,请重新输入