四、集合(Set)学习笔记

四、集合(Set)学习笔记

2026-02-19
Python基础
type
Post
status
Published
date
Feb 19, 2026
slug
python-data-structures-set-notes-4
summary
Python 中重要的数据容器之一——集合(Set)。集合是无序、不重复的数据集合,提供了高效的成员检测和集合运算功能。
tags
Python数据存储容器
category
Python基础
icon
password
今天学习集合,它的特点是无序不重复,特别适合用来去重和做集合运算!

一、什么是集合?

1.1 我的理解

集合就是无序、不重复的数据集合,用花括号 {} 表示。和数学里的集合概念一样,可以进行并集、交集、差集等运算。

1.2 为什么要用集合?

问题:列表去重太麻烦,而且查找元素很慢
集合的优势
  • 自动去重:不用写循环判断
  • 查找超快:成员检测时间复杂度 O(1)
  • 集合运算:支持并集、交集、差集等数学运算

二、集合的特点

2.1 特点总结

特点
说明
注意点
无序
元素没有固定顺序
不能通过索引访问
不重复
自动去重
{1, 1, 2} 实际为 {1, 2}
可变
可以添加、删除元素
支持 add()remove()
元素必须可哈希
只能存不可变类型
不能存列表、字典

2.2 集合 vs 列表 vs 元组

特性
集合 (Set)
列表 (List)
元组 (Tuple)
语法
{1, 2, 3}
[1, 2, 3]
(1, 2, 3)
有序性
无序
有序
有序
可重复性
不重复
可重复
可重复
索引访问
❌ 不支持
✅ 支持
✅ 支持
成员检测
O(1) 极快
O(n) 慢
O(n) 慢
我的理解
  • 需要去重用集合
  • 需要顺序用列表
  • 数据固定用元组

2.3 集合的内存结构

集合内存结构示意图

三、创建集合

3.1 花括号创建(最常用)

3.2 set() 函数创建

3.3 创建集合的注意事项


四、集合的基本操作

4.1 添加元素

4.2 删除元素

4.3 成员检测


五、集合常用方法总结

5.1 集合(set)中的常见方法

方法
说明
示例
返回值
add(x)
添加元素 x 到集合
s.add(1)
None
update(iterable)
添加可迭代对象中的所有元素
s.update([1, 2, 3])
None
remove(x)
删除元素 x,不存在则报错
s.remove(1)
None
discard(x)
删除元素 x,不存在不报错
s.discard(1)
None
pop()
随机删除并返回一个元素
s.pop()
被删除的元素
clear()
清空集合中的所有元素
s.clear()
None
copy()
返回集合的浅拷贝
s.copy()
新集合
len(s)
返回集合中元素的个数
len(s)
整数

5.2 集合运算方法

方法
运算符
说明
union()
\|
并集
intersection()
&
交集
difference()
-
差集
symmetric_difference()
^
对称差集
issubset()
<=
是否为子集
issuperset()
>=
是否为超集
isdisjoint()
-
是否不相交

六、集合运算

6.1 并集(Union)

并集:包含两个集合中所有不重复的元素。

6.2 交集(Intersection)

交集:包含同时存在于两个集合中的元素。

6.3 差集(Difference)

差集:包含在第一个集合中但不在第二个集合中的元素。

6.4 对称差集(Symmetric Difference)

对称差集:包含只存在于其中一个集合中的元素(不同时存在于两个集合)。

6.5 集合关系判断


七、集合推导式

7.1 基本语法

7.2 带条件的集合推导式


八、实际应用案例

8.1 数据去重

8.2 共同好友查找

8.3 敏感词过滤

8.4 标签系统

8.5 学生选课分析


九、遇到的问题和解决

问题1:用 {} 创建空集合变成了字典

问题2:集合元素必须是不可变类型

问题3:集合是无序的,不能索引访问


十、方法越来越多了,真的记不住啊!

  1. 编写程序,使用集合找出两个列表中的共同元素
  1. 编写程序,使用集合去除一个字符串中的所有重复字符
  1. 编写程序,使用集合运算找出只选修了数学或只选修了物理的学生
  1. 编写程序,判断一个字符串是否包含另一个字符串中的所有字符(使用集合)
  1. 编写程序,使用集合实现一个简单的推荐系统,根据用户兴趣推荐文章
推荐云服务

雨云 - 云服务器首选

稳定 · 高速 · 性价比超高

使用优惠码立享折扣,开启你的云端之旅~

一元试用秒级开通24h在线客服

优惠码

zqf
立即访问
Loading...
灵心小窝

灵心小窝

这里不是一个喧闹的地方,只是用来存放一些还不想遗忘的东西。

声明 © 2026 早清风
加载中...