列表非常适合用于存储在程序运行期间可能变化的数据集。列表是可以修改的,这对处理网站的用户列表或游戏中的角色列表至关重要。
Python将不能修改的值称为不可变的 ,而不可变的列表被称为元组。然而,有时候需要创建一系列不可修改的元素,元组可以满足这种需求。
元组看起来犹如列表,但使用圆括号而不是方括号来标识。定义元组后,就可以使用索引来访问其元素,就像访问列表元素一样。
例如,如果有一个大小不应改变的矩形,可将其长度和宽度存储在一个元组中,从而确保它们是不能修改的:
dimensions = (200, 50)
print("Original dimensions:")
for dimension in dimensions:
print(dimension)
首先定义了元组dimensions,为此使用了圆括号而不是方括号。接下来,分别打印该元组的各个元素,使用的语法与访问列表元素时使用的语法相同:
>>>
Original dimensions:
200
50
>>>
下面来尝试修改元组dimensions中的一个元素,看看结果如何:
dimensions = (200, 50)
dimensions[0]= 250
print("Original dimensions:")
for dimension in dimensions:
print(dimension)
代码试图修改第一个元素的值,导致Python返回类型错误消息。由于试图修改元组的操作是被禁止的,因此Python指出不能给元组的元素赋值:
>>>
Traceback (most recent call last):
File "D:\pythonStep\chap4\dimensions.py", line 2, in <module>
dimensions[0]= 250
TypeError: ‘tuple‘ object does not support item assignment
>>>
代码试图修改矩形的尺寸时,Python报告错误,
像列表一样,也可以使用for循环来遍历元组中的所有值:
dimensions = (200, 50)
#dimensions[0]= 250
print("Original dimensions:")
for dimension in dimensions:
print(dimension)
就像遍历列表时一样,Python返回元组中所有的元素:
>>>
Original dimensions:
200
50
虽然不能修改元组的元素,但可以给存储元组的变量赋值。因此,如果要修改前述矩形的尺寸,可重新定义整个元组。
dimensions = (200, 50)
#dimensions[0]= 250
print("Original dimensions:")
for dimension in dimensions:
print(dimension)
dimensions = (400, 100)
print("\nModified dimensions:")
for dimension in dimensions:
print(dimension)
首先定义了一个元组,并将其存储的尺寸打印了出来;接下来,将一个新元组存储到变量dimensions中;然后,打印新的尺寸。
这次,Python不会报告任何错误,因为给元组变量赋值是合法的:
>>>
Original dimensions:
200
50
Modified dimensions:
400
100
>>>
相比于列表,元组是更简单的数据结构。
如果需要存储的一组值在程序的整个生命周期内都不变,可使用元组。
原文地址:https://www.cnblogs.com/shwj/p/12688768.html