Python四大核心数据结构之列表、字典、元组、集合
Python的四种基础数据结构各有特点:列表有序可变,元组有序不可变,字典通过键值对快速查找,集合自动去重且支持交并差等数学运算。根据实际需求选择合适结构,能够显著地提升代码效率与性能。
学习Python,数据结构是绕不开的核心知识点。无论是处理简单数据还是搭建复杂系统,理解列表、元组、字典和集合这四种基础结构,几乎决定了你的代码能写得多顺手。在实际编码中,初学者最容易混淆的就是它们各自的特性和应用场景,今天就来把这块内容彻底理清楚。
快速总览(一眼看懂区别)
| 名称 | 符号 | 有序 | 可修改 | 重复 | 核心特点 |
|---|---|---|---|---|---|
| 列表 (List) | [] | ✅ 是 | ✅ 是 | ✅ 可 | 最常用、有序、可增删改查 |
| 元组 (Tuple) | () | ✅ 是 | ❌ 否 | ✅ 可 | 不可修改、安全、速度快 |
| 字典 (Dict) | {} | ✅(3.7+) | ✅ 是 | ❌ 键不可 | 键值对、通过名字取值 |
| 集合 (Set) | {} | ❌ 否 | ✅ 是 | ❌ 不可 | 自动去重、数学集合运算 |
从上面的对比可以看出,每种结构的设计都有明确意图。但光看表格还不够,我们直接上手代码,看看它们在实际中到底怎么用。
逐个详解(带代码示例)
1. 列表 —— 万能数组
列表用方括号[]来定义,特点非常鲜明:有序、可修改、允许重复。你可以把它想象成一个有序的储物箱,不管往里塞什么类型的数据都行,而且随时可以增删改。

# 定义
my_list = [10, "Python", True, 3.14]
# 常用操作
my_list.append("新增") # 末尾添加
my_list[0] = 100 # 修改第1个元素
del my_list[1] # 删除元素
print(my_list[0]) # 取值:按索引(从0开始)
适用场景:存有序列表,比如学生名单、商品列表。只要是需要保持顺序且可能变动的数据,列表是默认选择。
2. 元组 —— 不可修改的列表
元组用圆括号()定义,和列表几乎一模一样,唯一的不同就是——它一旦创建就不能改了。也就是说,你只能取值,不能做添加、删除或修改的操作。
# 定义 my_tuple = (10, "Python", True) # 只能取值,不能增删改 print(my_tuple[1]) # 输出 Python # 尝试修改会报错! # my_tuple[0] = 100 # 报错
为什么要用这种“自废武功”的数据结构?答案很简单:安全性和性能。当你的数据是固定不变的,比如坐标点的经纬度、程序的配置常量,或者一个函数需要返回多个值时,用元组不仅更安全(不会被意外篡改),运行速度也更快。
适用场景:固定不变的数据,比如坐标信息、配置常量、函数返回多个值。
3. 字典 —— 键值对映射
字典用花括号{key: value}表示,采用键值对的结构。它和我们日常用的字典一样,通过“键”来查找对应的“值”,而不是靠位置索引。
# 定义:键: 值
person = {
"name": "小明",
"age": 20,
"city": "北京"
}
# 取值:用键,不用索引
print(person["name"]) # 小明
# 修改/添加
person["age"] = 21
person["gender"] = "男"
字典最大的优势在于查询速度。当你需要描述一个对象的多个属性,或者处理接口返回的JSON数据时,字典就是最顺手的工具。需要注意的是,字典的键必须是不可变类型(比如字符串、数字、元组),而且不能重复。
适用场景:描述对象属性,比如用户信息、商品详情、接口数据。几乎所有需要“根据名字找东西”的场景都能用到它。
4. 集合 —— 自动去重
集合也用花括号{}表示,但和字典不同,它的内部没有键值对,只有元素本身。集合最大的特点就是自动去重——不管你塞多少个重复值进去,它只保留一份。
# 定义(自动去重)
my_set = {1, 2, 2, 3, 3, 3}
print(my_set) # 输出 {1,2,3}
# 常用操作
my_set.add(4) # 添加
my_set.remove(2) # 删除
# 数学运算
a = {1,2,3}
b = {3,4,5}
print(a & b) # 交集 {3}
print(a | b) # 并集 {1,2,3,4,5}
集合还支持数学上的交集、并集、差集运算,这在处理共同好友、权限取交等场景时特别高效。
适用场景:去重、判断元素是否存在、集合运算(比如共同好友、标签重叠)。
最简单记忆口诀
- 要有序、能修改 → 用 列表
[] - 要有序、不能改 → 用 元组
() - 要键值对、查得快 → 用 字典
{} - 要去重、算集合 → 用 集合
{}
这四句话几乎能覆盖90%以上的使用场景。当然,实际开发中往往需要组合使用,比如列表里套字典,字典里再套列表,但核心逻辑从来没变过。
最常用操作速查表
| 操作 | 列表 | 元组 | 字典 | 集合 |
|---|---|---|---|---|
| 创建 | [] | () | {k:v} | {} |
| 取值 | [索引] | [索引] | [键] | 不支持 |
| 修改 | ✅ | ❌ | ✅ | ✅ |
| 去重 | ❌ | ❌ | 键去重 | ✅ |
| 顺序 | 有 | 有 | 有 (3.7+) | 无 |
明确了这些基础,你就能根据不同的需求快速选定正确的工具。说到底,Python的哲学就是“一件事情最好只有一种好的做法”,而它的数据结构设计,也完美体现了这一点。


































