下面用清晰、系统、面试也适用的方式,详细介绍 Python 中的列表(list)和元组(tuple)。
一、列表 list
1. 基本概念
- 使用方括号
[]表示 - 有序、可变、可重复
- 可存放任意类型数据(int、str、list、对象等)
python
运行
lst = [1, 2, 3, "apple", True, [4,5]]2. 常用操作(重点)
访问元素
python
运行
lst[0] # 第一个元素 lst[-1] # 最后一个 lst[1:3] # 切片 [2,3]添加元素
python
运行
lst.append(6) # 末尾添加 lst.insert(0, 0) # 指定位置插入 lst.extend([7,8])# 扩展列表修改元素
python
运行
lst[0] = 100 # 直接赋值修改删除元素
python
运行
lst.pop() # 删除最后一个 lst.pop(0) # 删除指定索引 lst.remove(3) # 删除第一个值为3的元素 del lst[1] # 删除指定位置 lst.clear() # 清空其他常用方法
python
运行
len(lst) # 长度 lst.index(2) # 查找索引 lst.count(2) # 计数 lst.sort() # 排序 lst.reverse() # 反转3. 特点
- 可变(mutable):可增删改
- 占用空间稍大,有额外扩容空间
- 适合频繁修改的数据
二、元组 tuple
1. 基本概念
- 使用圆括号
()表示 - 有序、不可变、可重复
- 同样可存放任意类型
python
运行
t = (1, 2, 3, "apple")单个元素的元组必须加逗号:
python
运行
t = (1,) # 正确 t = (1) # 错误,只是整数12. 常用操作
访问(和列表一样)
python
运行
t[0] t[-1] t[1:3]不可修改
python
运行
t[0] = 10 # 报错!元组不可变可用方法很少
python
运行
len(t) t.index(2) t.count(2)3. 特殊:元组里的可变对象可以变
元组本身不可变,但如果里面是 list,list 可变:
python
运行
t = (1, [2,3]) t[1].append(4) # 可以4. 特点
- 不可变(immutable)
- 访问速度更快
- 占用内存更小
- 可做字典的 key
- 线程更安全
三、列表 vs 元组 核心对比
表格
| 特性 | 列表 list | 元组 tuple |
|---|---|---|
| 符号 | [] | () |
| 可变性 | 可变(增删改) | 不可变 |
| 方法数量 | 多 | 极少 |
| 性能 | 一般 | 更快、更省内存 |
| 能否做字典 key | 不能 | 能 |
| 使用场景 | 频繁修改的数据 | 固定不变的数据、配置项 |
四、相互转换
python
运行
lst = [1,2,3] t = tuple(lst) # list → tuple t = (1,2,3) lst = list(t) # tuple → list五、使用场景总结
用 list:需要频繁添加、删除、修改的数据,如任务列表、用户列表、临时缓存等。
用 tuple:数据一旦定义就不变,如坐标、配置项、函数返回多个值、字典 key 等。