简单了解python列表和元组的区别

  • Post category:Python

在Python中,列表(list)和元组(tuple)都是常用的数据结构,它们都可以存储多个元素。但是,它们之间有一些区别。下面是两个主要的区别:

区别一:可变性

列表是可变的(mutable),即可以添加、删除、修改列表中的元素。而元组是不变的(immutable),即一旦创建后,就不能再添加、删除、修改元组中的元素。下面是一个示例:

my_list = [1, 2, 3]
my_tuple = (1, 2, 3)

my_list.append(4)
# my_tuple.append(4)  # 报错:'tuple' object has no attribute 'append'

print(my_list)  # 输出:[1, 2, 3, 4]
print(my_tuple)  # 输出:(1, 2, 3)

上述代码中,我们定义了一个列表my_list和一个元组my_tuple,然后尝试向它们中添加一个元素。由于元组是不变的,所以添加元素的操作会报错。

区别二:性能

由于元组是不可变的,所以它们的能比列表更好。在访问元素时,元组比列表更快。下面是一个示例:

import timeit

my_list = [1, 2, 3, , 5]
my_tuple = (1, 2, 3, 4, 5)

print(timeit.timeit('my_list4]', globals=globals()))  # 输出:0.0408
print(timeit.timeit('my_tuple[4]', globals=globals()))  # 输出:0.0401

上述代码中,我们timeit模块比较了访问列表和元组中最后一个元素的时间。结果显示,访问元组时间比访问列表的时间稍微快一些。

示例一:使用列表存储学生信息

下面是一个示例,演示如何使用列表存储学生:

students = [['Tom', 18, 'male'], ['Lucy', 19, 'female'], ['Jack', 20, 'maleprint(students[0])  # 输出:['Tom', 18, 'male']
students[0][1] = 20
print(students[0])  # 输出:['Tom', 20, 'male']

上代码中,我们定义了一个包含多个列表的列表students,每个列表表示一个学生的信息。我们可以使用下标访问列表中的元素,并可以修改列表中的元素。

示例二:使用元组存储坐标信息

下面是另一个示例,演示如何使用元组存储坐标信息:

python
point = (3, 4)
print(point[0]) # 输出:3

point[0] = 5 # 报错:’tuple’ object does not support item assignment

“`

上述代码中,我们定义了一个元组point,表示一个二维坐标的位置。我们可以使用下标访问元组中的元素,但不能修改元组中的元素。

总结:

本文简单介绍了Python中和元组的区别,并提供了两个示例说明。在Python编程中,我们需要根据实际情况选择使用列表或元组。如果需要频繁地添加、删除、修改元素,应该使用列表;如果需要存储不可变的数据,该使用元组。