Python 中的元组(tuple)
是一种用于存储多个项目(元素)的容器,但它与列表(list)不同,元组是不可变的。这意味着一旦你创建了一个元组,你就不能更改它的内容(即不能添加、删除或更改元组中的元素)。元组通常用于存储那些不应该被改变的数据集合,比如一周的天数、数学中的坐标点等。
创建元组
元组使用圆括号 () 来定义,元素之间用逗号 , 分隔。即使元组只有一个元素,你也需要在该元素后面加上逗号 ,,以区分元组和该元素本身(不带逗号的圆括号会被解释为表达式的一部分,而不是元组)。
# 创建一个空元组
empty_tuple = ()
# 创建一个包含多个元素的元组
my_tuple = (1, 2, 3, 'a', 'b', 'c')
# 创建一个只包含一个元素的元组,注意逗号
singleton_tuple = ('hello',)
访问元组元素
你可以使用索引来访问元组中的元素,索引从 0 开始。
python
# 访问元组的第一个元素
first_element = my_tuple[0]
print(first_element) # 输出: 1
# 访问元组的最后一个元素
last_element = my_tuple[-1]
print(last_element) # 输出: 'c'
元组切片
和列表一样,元组也支持切片操作,允许你获取元组的一个子集。
# 获取元组的第二个到第四个元素(不包括第四个)
sub_tuple = my_tuple[1:4]
print(sub_tuple) # 输出: (2, 3, 'a')
元组是不可变的
由于元组是不可变的,因此你不能直接修改元组中的元素。但是,你可以将元组中的元素替换为另一个元组,这实际上是在创建一个新的元组。
# 尝试修改元组中的元素(这会引发TypeError)
# my_tuple[0] = 10 # 这是不允许的
# 可以通过创建一个新的元组来“修改”元组
new_tuple = (10,) + my_tuple[1:]
print(new_tuple) # 输出: (10, 2, 3, 'a', 'b', 'c')
元组的应用场景
存储那些不应该被改变的数据集合。
作为字典的键(因为字典的键必须是不可变的)。
在需要不可变序列的场合,比如函数参数传递时,使用元组可以避免函数内部对外部数据的意外修改。
在需要快速访问元素时,因为元组是固定大小的,Python 可以在内存中更有效地存储它们。