Python 列表与元组
在 Python 中,列表(List)和元组(Tuple)是处理有序数据的核心工具。二者均能存储多类型元素,但 “可变性” 的差异决定了它们的适用场景。今天这篇指南,不仅讲清基础概念,更带你用代码实操关键功能,看完就能用!
一、列表(List):可变的 “数据操作库”
1. 基础概念
- 本质:可变序列(创建后可自由增删改元素)
- 标识:用 [] 包裹元素,元素间用逗号分隔
- 特点:有序、支持嵌套、可存任意数据类型(数字、字符串、列表等)
2. 基础操作实操(代码可直接运行)
# 1. 创建列表(空列表/普通列表/嵌套列表)
my_list = [] # 空列表
num_list = [1, 2, 3] # 数字列表
mix_list = [1, 'a', [4, 5]] # 混合嵌套列表
# 2. 访问元素(索引从0开始,支持反向索引[-1])
print(num_list[0]) # 输出:1(正向取第1个元素)
print(mix_list[-1]) # 输出:[4,5](反向取最后1个元素)
# 3. 修改元素(直接通过索引赋值)
num_list[1] = 20 # 将第2个元素从2改为20
print(num_list) # 输出:[1, 20, 3]
# 4. 删除元素(用del关键字删指定索引元素)
del mix_list[2] # 删除索引为2的嵌套列表
print(mix_list) # 输出:[1, 'a']
3. 常用函数全解析(带代码示例)
(1)添加元素
|
函数 |
功能 |
代码示例 |
运行结果 |
|
append() |
末尾添加 1 个元素 |
lst = [1,2]; lst.append(3) |
[1,2,3] |
|
extend() |
末尾添加多个元素(可迭代对象) |
lst.extend([4,5]) |
[1,2,3,4,5] |
|
insert() |
指定索引插入元素 |
lst.insert(1, 'a') |
[1, 'a', 2, 3, 4, 5] |
# 实际运行代码
lst = [1, 2]
lst.append(3)
lst.extend([4, 5])
lst.insert(1, 'a')
print(lst) # 输出:[1, 'a', 2, 3, 4, 5]
(2)删除元素
|
函数 |
功能 |
代码示例 |
运行结果 |
|
remove() |
删除第一个匹配元素 |
lst = [1,2,3,2]; lst.remove(2) |
[1,3,2] |
|
pop() |
删除并返回指定索引元素(默认末尾) |
popped = lst.pop(1) |
popped=3,lst=[1,2] |
|
clear() |
清空列表 |
lst.clear() |
[] |
# 实际运行代码
lst = [1, 2, 3, 2]
lst.remove(2)
popped = lst.pop(1)
lst.clear()
print(lst) # 输出:[]
print(popped) # 输出:3
(3)查找与统计
lst = ['a', 'b', 'c', 'a']
print(lst.index('c')) # 输出:2(返回元素首次出现的索引)
print(lst.count('a')) # 输出:2(统计元素出现次数)
print('b' in lst) # 输出:True(检测元素是否存在)
(4)排序与反转
lst = [3, 1, 4]
lst.sort() # 原地升序排序 → [1, 3, 4]
lst.reverse() # 原地反转 → [4, 3, 1]
new_lst = sorted(lst) # 生成新排序列表,原列表不变
print(lst) # 输出:[4, 3, 1]
print(new_lst) # 输出:[1, 3, 4]
(5)其他实用操作
lst = [5, 2, 8]
print(len(lst)) # 输出:3(获取列表长度)
print(max(lst)) # 输出:8(取最大值)
print(sum(lst)) # 输出:15(对数值列表求和)
二、元组(Tuple):不可变的 “数据保险箱”
1. 基础概念
- 本质:不可变序列(创建后无法修改、删除、添加元素)
- 标识:用 () 包裹元素,单元素必须加逗号(如 (7,),否则视为普通括号)
- 特点:有序、支持嵌套、内存占用小、访问速度快,可作为字典键
2. 基础操作实操
# 1. 创建元组(空元组/普通元组/单元素元组/列表转元组)
empty_tuple = () # 空元组
normal_tuple = (1, 2, 'x')# 普通元组
single_tuple = (7,) # 单元素元组(必加逗号)
from_list = tuple([4,5]) # 从列表转换为元组
# 2. 访问元素(同列表,支持索引和切片)
print(normal_tuple[2]) # 输出:'x'(取索引2的元素)
print(from_list[0:2]) # 输出:(4,5)(切片取元素)
# 3. 尝试修改会报错(不可变性核心体现)
# normal_tuple[1] = 20 # 执行会抛出:TypeError(禁止修改)
3. 元组专属常用操作
# 1. 拼接(用+合并多个元组,生成新元组)
t1 = (1, 2)
t2 = (3, 4)
print(t1 + t2) # 输出:(1, 2, 3, 4)
# 2. 重复(用*复制元素,生成新元组)
t3 = ('x',)
print(t3 * 3) # 输出:('x', 'x', 'x')
# 3. 成员检测(用in判断元素是否存在)
t4 = (10, 20, 30)
print(20 in t4) # 输出:True
三、列表与元组核心差异速查表
|
对比维度 |
列表(List) |
元组(Tuple) |
|
标识符号 |
[] |
() |
|
可变性 |
支持增删改 |
完全不可变 |
|
字典键适用性 |
不可(无哈希性) |
可(有哈希性) |
|
内存 / 速度 |
占用大、访问慢 |
占用小、访问快 |
|
核心场景 |
动态数据(购物车、日志) |
固定数据(配置、坐标) |
跟着代码跑一遍,列表和元组的用法就能轻松掌握!
更多推荐



所有评论(0)