c语言编程笔录

首页 >   > 笔记大全

笔记大全

Python元组示例 不可更改的序列数据类型

更新时间:2023-07-10

Python元组的定义

元组是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元组是不可变序列数据类型,可以包含不同类型的元素。它们支持索引和切片操作,但是不能被修改或删除。元组的优点是速度快、存储空间小。当您需要存储少量数据时,建议使用元组。