元组(tuple
)是 Python 中的一种序列。和列表类似,但是元组不可变。
也就是说元组一旦声明后,值就不能再改变。有的同学可能就要问了啊,“既然不可变,那有什么用呢?”
某些数据比较重要,不希望在程序运行过程中发生更改。
我们先来看看元组的样式:
>>> t = () # 空元组
>>> t1 = (5,) # 元组只有一个元素的时候,必须一定要加逗号
>>> t2 = (5, 7, 8)
为什么
t1 = (5,)
,也就是元组只有一个元素的时候必须加逗号呢?因为小括号在运算过程中充当改变优先级的作用,当你写成
t1=(5)
的时候,Python 会认为你这里是一个表达式,(5) 就是 5,而 t1 是一个整数而不是元组。为了避免这种尴尬,Python 才规定元组只有一个元素的时候必须加一个逗号,否则就不是元组啦!
元组以小括号作为标识,以逗号分隔元素。
元组的操作与列表类似,当然会导致列表改变的操作是无法执行的。
>>> t = (5, 6, 7, 'x', 'y')
>>> t[1] # 读取元素
6
>>> t[2] = 77
TypeError: 'tuple' object does not support item assignment # 元组不支持重新分配元素
元组支持的方法只有 count 和 index
>>> t = (5, 6, 7, 'x', 'y', 7)
>>> t.count(7) # 统计元素 7 出现的次数
2
>>> t.index('x') # 返回元素 'x' 所在的索引值
3
元组可以转换为列表:
>>> t = (5, 6, 7, 'x', 'y', 7)
>>> list(t) # 注意,原来的元组并没有变化,是生成了一个新的列表
[5, 6, 7, 'x', 'y', 7]