5.3 python中的元组
Python中的元组(Tuple)是一种用于存储多个项目(可以是不同类型)的序列数据结构,但它与列表(List)不同,主要区别在于元组是不可变的(immutable),一旦创建,其内部元素就不能被修改(即不能添加、删除或更改元组中的元素)。元组通常用于存储不应该改变的数据集合,如数据库中的一行记录,或者函数的多个返回值。
创建元组
元组使用圆括号()
来定义,元组中的元素之间使用逗号,
分隔。即使元组中只有一个元素,也需要在该元素后面加上逗号,以区分于圆括号用于数学表达式中的用途。
# 创建一个空元组
empty_tuple = ()
# 创建一个包含多个元素的元组
tuple_example = (1, 2, 3, 'a', 'b', 'c')
# 只有一个元素的元组
single_element_tuple = ('a',) # 注意后面的逗号
访问元组中的元素
元组中的元素可以通过索引来访问,索引从0开始。
tuple_example = (1, 2, 3, 'a', 'b', 'c')
print(tuple_example[0]) # 输出: 1
print(tuple_example[5]) # 输出: 'c'
元组的切片
和列表一样,元组也支持切片操作,可以获取元组的一个子集。
tuple_example = (1, 2, 3, 4, 5, 6)
print(tuple_example[1:4]) # 输出: (2, 3, 4)
元组是不可变的
尝试修改元组中的元素会引发TypeError
。
tuple_example = (1, 2, 3)
# tuple_example[0] = 4 # 这会引发TypeError
然而,如果元组中的元素是可变类型(如列表),则可以修改这些元素的内部状态,但这不会改变元组本身的不可变性(即你不能替换整个列表元素,但可以修改列表中的元素)。
tuple_example = (1, [2, 3], 4)
tuple_example[1][0] = 5 # 这是允许的,因为列表是可变的
print(tuple_example) # 输出: (1, [5, 3], 4)
元组的应用场景
- 作为字典的键(因为字典的键必须是不可变的)
- 存储不应该改变的数据集合
- 函数的多个返回值(Python允许函数返回元组,从而可以一次返回多个值)
总结
Python中的元组是一种用于存储多个项目的不可变序列。尽管其元素不可变,但元组仍是一种强大且灵活的数据结构,适用于多种编程场景。