Python元组示例 不可更改的序列数据类型
更新时间:2023-07-10Python元组的定义
元组是Python中不可变序列数据类型。和列表一样,元组也可以容纳不同类型的元素。元组中的元素用逗号分隔,并且可以用圆括号将它们括起来。
my_tuple = (1, 2, 3, 'four')
print(my_tuple)
输出结果:
(1, 2, 3, 'four')
需要注意的是,如果元组只包含一个元素,那么要在元素后面加上逗号,否则它将被解释为一个表达式:
my_tuple = ('only',)
print(type(my_tuple)) # <class 'tuple'>
my_tuple = ('only')
print(type(my_tuple)) # <class 'str'>
Python元组的操作
元组对象可以通过下标访问其中的元素。和列表一样,元组也支持切片操作。
my_tuple = ('a', 'b', 'c', 'd', 'e')
print(my_tuple[0]) # 'a'
print(my_tuple[-1]) # 'e'
print(my_tuple[2:4]) # ('c', 'd')
元组是不可变的,因此它们不支持任何修改操作。例如,您不能为元组中的一个元素分配一个新值,您也不能删除元组中的元素。但是,您可以连接两个或多个元组,或者复制一个元组。
tuple1 = ('a', 'b', 'c')
tuple2 = (1, 2, 3)
tuple3 = tuple1 + tuple2
print(tuple3) # ('a', 'b', 'c', 1, 2, 3)
my_tuple = ('a', 'b', 'c')
new_tuple = my_tuple * 2
print(new_tuple) # ('a', 'b', 'c', 'a', 'b', 'c')
Python元组的优点
元组的主要优点是速度快、存储空间小,因为它们不需要像列表那样维护内存中的动态数组。当元组中包含的元素数量较少时,元组的索引操作比列表更快。因此,在需要存储少量数据时,建议使用元组。以下是一个简单的性能对比实验:
import timeit
my_list = [1, 2, 3, 'four', 'five', 'six']
my_tuple = (1, 2, 3, 'four', 'five', 'six')
list_time = timeit.timeit("[1, 2, 3, 'four', 'five', 'six'][3]", number=10000000)
tuple_time = timeit.timeit("(1, 2, 3, 'four', 'five', 'six')[3]", number=10000000)
print('列表索引时间:', list_time)
print('元组索引时间:', tuple_time)
输出结果:
列表索引时间: 0.558616416014183
元组索引时间: 0.39426506497818916
小结
Python元组是不可变序列数据类型,可以包含不同类型的元素。它们支持索引和切片操作,但是不能被修改或删除。元组的优点是速度快、存储空间小。当您需要存储少量数据时,建议使用元组。