python元组

python元组

本章介绍另一个内置类型:元组,同时说明如何结合使用列表、字典和元组。我还将介绍一个有用的特性,即可变长度参数列表,以及汇集分散操作符。

说明:“tuple”并没有统一的发音,有些人读成“tuh-ple”,音律类似于“supple”; 而在编程的语境下,大部分读成“too-ple”,音律类似于“quadruple”。

元组是不可变的

元组是一组值的序列。 其中的值可以是任意类型, 使用整数索引, 因此从这点上看,元组与列表非常相似。 二者不同之处在于元组的不可变性。

语法上,元组是用逗号隔开一系列值:

>>> t = 'a', 'b', 'c', 'd', 'e'

虽然并非必须,元组通常用括号括起来:

>>> t = ('a', 'b', 'c', 'd', 'e')

使用单一元素创建元组时,需要在结尾处添加一个逗号:

python元组

加逗号和不加逗号的区别

将值放置在括号中并不会创建元组:

>>> t2 = ('a')
>>> type(t2)
<class 'str'>

另一个创建元组的方法是使用内建函数 tuple 。 在没有参数传递时,它会创建一个空元组:

>>> t = tuple()
>>> t
()

如果实参是一个序列(字符串、列表或者元组),结果将是一个包含序列内元素的元组。

>>> t = tuple('lupins')
>>> t
('l', 'u', 'p', 'i', 'n', 's')

因为 tuple 是内建函数名,所以应该避免将它用作变量名。

列表的大多数操作符同样也适用于元组。 方括号运算符将索引一个元素:

>>> t = ('a', 'b', 'c', 'd', 'e')
>>> t[0]
'a'

切片运算符选取一个范围内的元素:

>>> t[1:3]
('b', 'c')

但是,如果你试图元组中的一个元素,会得到错误信息:

>>> t[0] = 'A'
TypeError: object doesn't support item assignment

因为元组是不可变的,你无法改变其中的元素。 但是可以使用其他元组替换现有元组:

>>> t = ('A',) + t[1:]
>>> t
('A', 'b', 'c', 'd', 'e')

这个语句创建了一个新元组,然后让 t 引用该元组。

关系型运算符也适用于元组和其他序列; Python 会首先比较序列中的第一个元素,如果它们相等,就继续比较下一组元素,以此类推,直至比值不同。 其后的元素(即便是差异很大)也不会再参与比较。

>>> (0, 1, 2) < (0, 3, 4)
True
>>> (0, 1, 2000000) < (0, 3, 4)
True
上一篇:python-高级特性


下一篇:06-Python-元组(tuple)和集合(set)