上一节我们看到列表和字符串有许多共同的属性,比如索引和切片操作。它们是两种序列类型(list,tuple,range)。
Python是一门不断发展的语言,可能会加入新的序列类型。
今天我们来看另外一种标准的序列类型:tuple。
元组由一系列逗号分隔的元素构成:
>>> t = 12345, 54321, 'hello!' >>> t[0] 12345 >>> t (12345, 54321, 'hello!') >>> # 元组可以嵌套: ... u = t, (1, 2, 3, 4, 5) >>> u ((12345, 54321, 'hello!'), (1, 2, 3, 4, 5)) >>> # 元组是不可变的: ... t[0] = 88888 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'tuple' object does not support item assignment >>> # 但是可以包含可变的对象: ... v = ([1, 2, 3], [3, 2, 1]) >>> v ([1, 2, 3], [3, 2, 1]) 可以看到,元组总是有(),这样嵌套的元组能够正确的识别。尽管在通常情况下,元组的()是必须的,但有时作为输入时也可以省略括号(比如:u = t, (1, 2, 3, 4, 5))。不可能向元组中的元素赋值,但是创建包含可变对象的元组是可以的,比如列表。
尽管元组看起来和列表很相似,但它们通常使用在不同的场景中。元组是不可变的,通常