Python四大容器全攻略:8大核心知识点+5个实战案例,从入门到精通 – 小白编程笔记

Python四大容器(列表、元组、字典、集合)是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)存储数据,具有极快的查找速度,适合存储结构化、需要快速查询的数据。

Python四大容器全解析 字典键值对结构示意图

图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四大容器核心区别(必背)

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函数基础与参数使用,让代码真正模块化!
滚动至顶部
渝公网安备50022402001073号  |  渝ICP备2026004448号   © 2026 小白编程笔记