1. 列表与元组基础概念解析
Python中最常用的两种序列类型就是列表(list)和元组(tuple)。很多初学者容易混淆它们的特性和使用场景,今天我们就来彻底剖析这对"孪生兄弟"的本质区别。
列表用方括号[]表示,是一种可变序列。这意味着创建后可以随时修改其内容:
python复制fruits = ['apple', 'banana', 'orange']
fruits.append('grape') # 可以添加元素
fruits[1] = 'pear' # 可以修改元素
元组用圆括号()表示,是一种不可变序列。一旦创建就不能修改:
python复制colors = ('red', 'green', 'blue')
colors[1] = 'yellow' # 会抛出TypeError异常
关键理解:可变性(mutability)是两者最本质的区别。列表可变,元组不可变。这个特性直接决定了它们各自的应用场景。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 内存结构与性能对比
2.1 内存分配机制
列表采用动态数组(dynamic array)实现,会预留额外的存储空间以支持快速添加操作。当空间不足时,Python会分配一个更大的内存块(通常是当前大小的1.125倍)并复制原有数据。
元组采用静态数组实现,创建时就确定了固定大小的内存空间。这种设计使得元组在内存使用上更加紧凑高效。
2.2 操作性能实测
我们通过timeit模块测试常见操作的性能差异(测试环境:Python 3.10,100万次迭代):
| 操作类型 | 列表耗时(μs) | 元组耗时(μs) | 差异倍数 |
|---|---|---|---|
| 创建 | 0.48 | 0.12 | 4x |
| 索引访问 | 0.08 | 0.07 | 1.14x |
| 迭代 | 0.15 | 0.13 | 1.15x |
| 切片 | 0.32 | 0.18 | 1.78 |
