Python四大容器(列表、元组、字典、集合)是Python最核心的容器数据类型,几乎所有项目、数据处理、爬虫、开发场景都会高频使用。本文用最通俗易懂的方式,从零详解这四种数据结构的定义、操作、区别与实战场景,搭配大量案例,让你一次性吃透,写出更简洁、高效、规范的Python代码。

图1:Python四大容器全解析 列表/元组/字典/集合核心架构对比
一、列表 list:最常用的有序可变容器
列表是Python中最灵活的数据类型,属于有序、可变、可重复的序列。支持增删改查任意操作,是日常开发中使用率最高的容器,适合存储需要频繁修改的数据集。
1. 基础定义与访问
# 定义列表(可存放任意类型数据:数字、字符串、布尔值、甚至其他列表) lst = [10, "Python", True, 3.14, [1,2,3]] # 索引访问(正向从0开始,反向从-1开始) print(lst[0]) # 输出:10 print(lst[-1]) # 输出:[1, 2, 3] # 切片操作(左闭右开) print(lst[1:3]) # 输出:['Python', True]
2. 常用操作演示
lst = [1, 2, 3] # 增加数据 lst.append(4) # 末尾添加:[1, 2, 3, 4] lst.insert(0, 0) # 指定位置插入:[0, 1, 2, 3, 4] lst.extend([5,6]) # 批量添加:[0, 1, 2, 3, 4, 5, 6] # 修改数据 lst[1] = 100 # 修改指定索引值 # 删除数据 lst.pop() # 删除末尾 lst.remove(100) # 删除指定元素 del lst[0] # 删除指定索引
二、元组 tuple:不可变的安全序列
元组与列表非常相似,但核心区别是不可变。一旦创建,内部元素不能修改,这让它在数据安全、函数返回值、字典key等场景下更有优势。
# 定义元组(小括号包裹,单元素元组必须加逗号) t = (10, 20, "Python") t_single = (10,) # 单元素元组,必须加逗号! # 访问方式与列表一致 print(t[1]) # 输出:20 # 注意:元组不可修改 # t[0] = 100 # 报错:TypeError: 'tuple' object does not support item assignment # 元组拆包(常用技巧,快速赋值) a, b, c = t print(a, b, c) # 输出:10 20 Python
三、字典 dict:键值对映射容器
字典是Python中极具特色的数据类型,使用键值对(Key-Value)存储数据,具有极快的查找速度,适合存储结构化、需要快速查询的数据。

图2:Python四大容器全解析 字典键值对结构示意图
# 定义字典(大括号包裹,键值对用冒号分隔)
student = {
"name": "小明",
"age": 18,
"is_student": True,
"hobbies": ["篮球", "编程"]
}
# 访问数据(通过Key,两种方式)
print(student["name"]) # 直接访问,Key不存在会报错
print(student.get("age")) # get方法,Key不存在返回None,更安全
# 修改/增加数据
student["age"] = 19
student["city"] = "Beijing"
# 遍历字典(三种常用方式)
for k in student.keys(): # 遍历所有Key
print(k)
for v in student.values(): # 遍历所有Value
print(v)
for k, v in student.items(): # 遍历所有键值对
print(f"{k}: {v}")
四、集合 set:去重与数学运算
集合的核心功能是自动去重,同时支持集合间的数学运算(交集、并集、差集),是数据去重、集合分析的神器。
# 定义集合(大括号包裹,自动去重)
s = {1, 2, 2, 3, 3}
print(s) # 输出:{1, 2, 3}
# 列表去重神器(一行代码去重)
lst = [1, 1, 2, 3, 3, 3]
new_lst = list(set(lst))
print(new_lst) # 输出:[1, 2, 3]
# 集合数学运算
s1 = {1, 2, 3, 4}
s2 = {3, 4, 5, 6}
print(s1 & s2) # 交集:{3, 4}
print(s1 | s2) # 并集:{1, 2, 3, 4, 5, 6}
print(s1 - s2) # 差集:{1, 2}
五、Python四大容器核心区别(必背)

图3:Python四大容器全解析 核心区别对比表
列表 list:[],有序、可变、可重复,适合频繁修改的序列
元组 tuple:(),有序、不可变、可重复,适合固定配置、安全数据
字典 dict:{},键值对、键唯一、可变,适合结构化数据快速查询
集合 set:{},无序、不重复、可变,适合去重、集合运算
六、综合实战案例(扩容核心)
案例1:利用列表+字典实现简单通讯录
# 列表存储多个字典,实现通讯录
contacts = [
{"name": "张三", "phone": "13800138000", "city": "北京"},
{"name": "李四", "phone": "13900139000", "city": "上海"}
]
# 遍历查询所有联系人
for c in contacts:
print(f"姓名:{c['name']}, 电话:{c['phone']}, 城市:{c['city']}")
# 按姓名查询联系人
name_to_find = "张三"
for c in contacts:
if c["name"] == name_to_find:
print(f"找到联系人:{c}")
break
案例2:利用集合进行用户数据去重与交集分析
# 模拟两组用户ID(A产品用户、B产品用户)
user_a = {1, 2, 3, 4, 5, 6}
user_b = {4, 5, 6, 7, 8, 9}
# 共同关注的用户(交集)
common_users = user_a & user_b
print(f"同时使用A、B产品的用户:{common_users}")
# A产品独有的用户(差集)
only_a_users = user_a - user_b
print(f"仅使用A产品的用户:{only_a_users}")
# 所有用户(并集,自动去重)
all_users = user_a | user_b
print(f"所有用户总数:{len(all_users)}")
七、避坑指南
易错点1:尝试修改元组
元组是不可变的,直接修改会触发TypeError,需注意数据类型的选择。
易错点2:字典Key必须不可变
列表、字典等可变类型不能作为字典的Key,必须使用字符串、数字、元组等不可变类型。
易错点3:集合没有索引
集合是无序的,不能通过索引访问元素(s[0]会报错),只能通过遍历或成员判断操作。
延伸学习推荐
学习完Python四大容器,可参考Python官方数据结构文档深入理解;
也可以继续学习Python字符串操作全攻略,全面掌握Python基础数据类型。
八、核心总结
- 列表:最常用,有序可变,适合频繁操作数据
- 元组:不可变,适合固定配置、函数返回值
- 字典:键值对,适合存储结构化信息,查询速度快
- 集合:自动去重,适合交集、并集、列表去重场景
- 根据业务场景选择合适的容器,才能写出高效、优雅的Python代码
本文为「小白编程笔记」原创,零基础轻松掌握 Python 四大容器
下一篇:Python函数基础与参数使用,让代码真正模块化!
下一篇:Python函数基础与参数使用,让代码真正模块化!

渝公网安备50022402001073号
Pingback: Python 函数入门:9 大核心知识点 + 实战案例,从定义到调用全掌握 - 小白编程笔记 - 小白 编程 笔记
Pingback: Python 零基础入门系列专栏:10 + 篇干货从环境搭建到语法实战,小白一站式学 Python - 小白 编程 笔记
Pingback: Python简易计算器:零基础实战(附完整可运行代码)01 - 小白 编程 笔记