在 Python3 中,元组(Tuple)是一种不可变的序列类型,用于存储多个有序元素。元组与列表类似,但元组一旦创建就不能修改,这使得元组在需要数据不可变的场景中非常有用。以下是 Python3 元组的详细介绍:
使用圆括号()定义,元素之间用逗号分隔:
注意:创建单个元素的元组时,需要在元素后加逗号:
- 有序性:元素按插入顺序排列,可通过索引访问。
- 不可变性:元组创建后不能修改、添加或删除元素。
- 异构性:允许存储不同类型的元素。
- 可嵌套:元组中可包含其他元组或数据结构。
与列表类似,元组支持正向和负向索引,以及切片操作:
fruits = ('apple', 'banana', 'cherry', 'date')
尝试修改元组会引发错误:
fruits = ('apple', 'banana')
fruits[0] = 'avocado'
由于元组不可变,其方法较少,主要有:
统计元素在元组中出现的次数:
numbers = (1, 2, 2, 3, 2)
print(numbers.count(2))
查找元素首次出现的索引:
fruits = ('apple', 'banana', 'cherry')
print(fruits.index('banana'))
tuple1 = (1, 2)
tuple2 = (3, 4)
fruits = ('apple', 'banana', 'cherry')
print('apple' in fruits)
numbers = (1, 2, 3)
print(len(numbers))
元组解包是一种简洁的赋值方式,可将元组元素一次性赋给多个变量:
coordinates = (3, 4)
x, y = coordinates
print(x)
| 特性 | 元组(Tuple) | 列表(List) |
| 可变性 |
不可变 |
可变 |
| 语法 |
使用()定义 |
使用[]定义 |
| 性能 |
略高(创建和访问更快) |
略低 |
| 哈希支持 |
支持(可作为字典键) |
不支持 |
| 常用场景 |
存储不可变数据、函数返回多值 |
动态数据、需要修改的场景 |
def get_name_and_age():
return 'Alice', 25
name, age = get_name_and_age()
print(name)
由于元组可哈希,可作为字典的键:
points = {
(0, 0): 'origin',
(1, 1): 'point1'
}
print(points[(0, 0)])
元组在以下场景中性能优于列表:
- 内存占用:元组比列表更节省内存。
- 创建速度:元组创建速度比列表快约 10-20%。
- 访问速度:元组元素访问速度略快。
测试代码:
- 核心特性:有序、不可变、异构、可嵌套。
- 主要优势:数据安全性高、性能略优、可作为字典键。
- 常用方法:
count()、index()。
- 典型应用:函数返回多值、配置数据、字典键。
元组是 Python 中一种简单但强大的数据结构,尤其适合需要保证数据不被修改的场景。合理使用元组可以提高代码的可读性和性能。