Python将不能修改的值称为不可变的,而不可变的列表被称为元组。
元组与列表的主要区别还在于,元组像字符串一样, 是不可变的。 元组不能让它们的值被修改、 添加或删除。
1. 定义元组
元组看起来犹如列表,但使用圆括号而不是方括号来标识。定义元组后,就可以使用索引来
访问其元素,就像访问列表元素一样。
例如,如果有一个大小不应改变的矩形,可将其长度和宽度存储在一个元组中,从而确保它
们是不能修改的:
python dimensions = (200, 50) print(dimensions[0]) print(dimensions[1])
首先定义了元组dimensions,使用了圆括号而不是方括号。接下来,分别打印该元组的各个元素,使用的语法与访问列表元素时使用的语法相同
200
50
如果元组中只有一个值, 你可以在括号内该值的后面跟上一个逗号, 表明这种情况。 否则, Python 将认为, 你只是在一个普通括号内输入了一个值。逗号告诉Python, 这是一个元组(不像其他编程语言, Python 接受列表或元组中最后表项后面跟的逗号)。
2. 遍历元组中的所有值
像列表一样,也可以使用for循环来遍历元组中的所有值:
python dimensions = (200, 50) for dimension in dimensions: print(dimension)
3. 修改元组变量
虽然不能修改元组的元素,但可以给存储元组的变量赋值。因此,如果要修改前述矩形的尺寸,可重新定义整个元组:
dimensions = (200, 50)
print("Original dimensions:")
for dimension in dimensions:
print(dimension)
dimensions = (400, 100)
print("\nModified dimensions:")
for dimension in dimensions:
print(dimension)
```
输出:
Original dimensions:
200
50
Modified dimensions:
400
100
用 list()和 tuple()函数来转换类型
正如 str(42)将返回’42’,即整数 42 的字符串表示形式, 函数 list()和 tuple()
将返回传递给它们的值的列表和元组版本。
>>> tuple(['cat', 'dog', 5])
('cat', 'dog', 5)
>>> list(('cat', 'dog', 5))
['cat', 'dog', 5]
>>> list('hello')
['h', 'e', 'l', 'l', 'o']