Administrator
发布于 2026-06-21 / 3 阅读
0
0

Python 列表、元组、字典、集合四大容器全解

一、前言

前面我们只能用单个变量存储一组数据,实际开发中经常需要批量存放多条信息,Python 提供四种核心容器类型:列表 list、元组 tuple、字典 dict、集合 set。

本文完整讲解四种容器的定义、增删改查、常用方法与适用场景,是 Python 数据处理核心内容。

二、列表 list(可变有序数组,最常用)

列表使用[]包裹,支持存放任意类型数据,有序、可修改、允许重复元素。

1. 定义与取值

python

运行

# 创建列表
stu_list = ["张三", 18, "男生", 95.5]
# 通过下标取值,下标从0开始
print(stu_list[0])  # 输出张三
# 倒序取值 -1代表最后一位
print(stu_list[-1]) # 输出95.5
# 切片 [起始:结束:步长]
print(stu_list[0:2]) # 取前两个元素

2. 增删改操作

python

运行

nums = [10,20,30]
# 追加元素到末尾
nums.append(40)
# 指定位置插入
nums.insert(1, 15)
# 修改指定下标元素
nums[0] = 5
# 删除指定值
nums.remove(30)
# 删除末尾元素并返回
nums.pop()
# 清空列表
nums.clear()

3. 常用内置方法

python

运行

arr = [2,5,3,5,1]
print(arr.count(5)) # 统计5出现次数
arr.sort() # 从小到大排序
arr.reverse() # 反转列表
print(len(arr)) # 获取列表长度

三、元组 tuple(不可变有序容器)

元组用()包裹,创建后不能修改、删除、新增元素,数据固定时使用,安全高效。

1. 基础使用

python

运行

# 定义元组
t = ("小明", 20, "学生")
# 取值方式和列表一致
print(t[1])
# 单元素元组必须加逗号
single = (99,)

2. 特性说明

  • 无法执行 append、remove、修改下标赋值等操作

  • 仅支持 count ()、index ()、len () 基础查询方法

  • 适合存放不会改动的数据:配置、坐标、固定分类

四、字典 dict(键值对存储,查询最快)

字典{key:value},以唯一键 (key) 对应值 (value),无序、键不可重复,适合存储结构化信息(如用户信息)。

1. 创建与取值

python

运行

# 用户信息字典
user = {
    "name": "小李",
    "age": 22,
    "gender": "男"
}
# 两种取值方式
print(user["name"])
print(user.get("age")) # 不存在返回None,不会报错

2. 增删改查

python

运行

info = {"a":1, "b":2}
# 新增/修改键值
info["c"] = 3
# 删除指定键
del info["a"]
# 获取所有键、所有值、所有键值对
print(info.keys())
print(info.values())
print(info.items())
# 清空字典
info.clear()

五、集合 set(去重、交集差集运算)

集合{},无序、元素唯一,自动去重,主要用于数据去重、集合对比。

1. 基础去重

python

运行

# 列表转集合自动删除重复数据
data = [1,2,2,3,3,3]
s = set(data)
print(s) # {1,2,3}
# 创建空集合必须用set(),{}是空字典
empty_set = set()

2. 集合运算

python

运行

a = {1,2,3,4}
b = {3,4,5,6}
print(a & b) # 交集 {3,4} 两者共有
print(a | b) # 并集 {1,2,3,4,5,6} 全部合并去重
print(a - b) # 差集 {1,2} a独有的元素

六、四种容器对比总结

表格

容器

符号

是否有序

是否可修改

重复元素

核心用途

列表 list

[]

有序

可变

允许

批量可变数据、循环遍历

元组 tuple

()

有序

不可变

允许

固定不变数据、函数返回值

字典 dict

{k:v}

有序 (py3.7+)

可变

key 不重复

结构化键值信息存储

集合 set

{}

无序

可变

不允许

数据去重、集合对比

七、综合实战:学生信息管理小案例

python

运行

# 字典嵌套列表存储多名学生
student_list = [
    {"name":"张三","score":88},
    {"name":"李四","score":92},
    {"name":"王五","score":76}
]
# 循环遍历所有学生
for stu in student_list:
    print(f"姓名:{stu['name']},分数:{stu['score']}")

# 提取所有分数做去重
score_set = set()
for s in student_list:
    score_set.add(s["score"])
print("去重后的分数:", score_set)

八、新手常见报错

  1. 元组尝试赋值修改:TypeError: 'tuple' object does not support item assignment

  2. 字典用不存在的 key 直接取值:KeyError,改用.get()规避

  3. 创建空集合写{}:生成空字典,正确写法set()

  4. 列表下标超出范围:IndexError,访问下标不能超过列表长度 - 1

  5. 集合放入列表 / 字典等可变类型:报错,集合元素必须不可变

九、下期预告

下一篇:Python 函数定义、参数、返回值与局部全局变量,学会封装可复用代码。


评论