创建:元组是一个固定长度,不可改变的Python序列对象。创建元组的最简单方式,是用逗号分隔一列值。
转换:使用tuple
可以将任意序列或迭代器转换成元组
访问元素:用方括号[ ]访问元组中的元素。
特点:元组中存储的对象可能是可变对象。一旦创建了元组,元组中的对象就不能修改了。但是如果元组中的某个对象是可变的,比如说列表,则可以在原位置进行修改。
In [11]: tup[1].append(3)
In [12]: tup
Out[12]: ('foo', [1, 2, 3], True)
另外,可以用+号将几个元组连接在一起。
In [13]: (4, None, 'foo') + (6, 0) + ('bar',)
Out[13]: (4, None, 'foo', 6, 0, 'bar')
拆分元组:
In [18]: tup = 4, 5, (6, 7)
In [19]: a, b, (c, d) = tup
In [20]: d
Out[20]: 7
作用:变量拆分常用来迭代元组或列表序列
In [27]: seq = [(1, 2, 3), (4, 5, 6), (7, 8, 9)]
In [28]: for a, b, c in seq:
....: print('a={0}, b={1}, c={2}'.format(a, b, c))
a=1, b=2, c=3
a=4, b=5, c=6
a=7, b=8, c=9
高级的元组拆分功能,允许从元组的开头“摘取”几个元素。它使用了特殊的语法*rest
,这也用在函数签名中以抓取任意长度列表的位置参数:
In [29]: values = 1, 2, 3, 4, 5
In [30]: a, b, *rest = values
In [31]: a, b
Out[31]: (1, 2)
In [32]: rest
Out[32]: [3, 4, 5]
rest
的部分是想要舍弃的部分,rest的名字不重要。作为惯用写法,许多Python程序员会将不需要的变量使用下划线。
Tuple方法:因为元组的大小和内容不能修改,它的实例方法都很轻量。其中一个很有用的就是count
(也适用于列表),它可以统计某个值得出现频率:
In [34]: a = (1, 2, 2, 2, 3, 4, 2)
In [35]: a.count(2)
Out[35]: 4