元组 | 第二部分 类型与操作 —— 第 4 章: 介绍 python 对象类型 |《学习 python:强大的面向对象编程(第 5 版)》| python 技术论坛-金年会app官方网
元组对象(发音为“toople”或“tuhple”,取决于你问谁)大致像一个不能被修改的列表——元组像列表一样,是序列,但它们像字符一样,是不可变的。功能上,它们被用来表示多个项的固定集合:比如,一个指定日期的组成部分。语法上看,它们通常被编码在小括号而非方括号内,且它们支持任意类型,任意嵌套和通常的序列操作:
>>> t = (1, 2, 3, 4) # 一个4个项的元组
>>> len(t) # 长度
4
>> t (5, 6) # 连接
(1, 2, 3, 4, 5, 6)
>>> t[0] # 索引,切片等等
1
从python2.6和3.0起,元组还有类型特有的可调用方法,但远不如列表那样多:
>>> t.index(4) # 元组方法:4出现在偏移量3的位置
3
>>> t.count(4) # 4出现了1次
1
元组的主要区别是一旦它们被创建了就不能被更改。也就是说,它们是不可变的序列(像这里的这个单项的元组需要一个末尾的逗号,即写为(2,)
而非(2)
):
>>> t[0] = 2 # 元组是不可变的
..error text omitted...
typeerror: 'tuple' object does not support item assignment
>>> t = (2,) t[1:] # 创建一个新元组
>>> t
(2, 2, 3, 4)
像列表和字典一样,元组支持混合类型和嵌套,但它们不能增长和缩小,因为它们不可变(包裹元组项的小括号通常能被省略,如下所示):
即
t = 'spam', 3.0, [11, 22, 33]
和t = ('spam', 3.0, [11, 22, 33])
等价
>>> t = 'spam', 3.0, [11, 22, 33]
>>> t[1]
3.0
>>> t[2][1]
22
>>> t.append(4)
attributeerror: 'tuple' object has no attribute 'append'