元组

元组与列表类似,也是由任意类型元素组成的序列。但是与列表不同的是,元组是不可变的,可以认为元组是一个常量列表。

元组使用()包裹使用逗号分割的元素进行创建。例如:

tup1 = (1, 2, 3, 4)
tup2 = ('a', 'b', 1, 2)
tup3 = ()
tup4 = tuple()
tup5 = (40,)

注意上例中,当元组中有且仅有一个元素时,需要在元素后添加一个逗号防止括号被当作运算符使用。此外,在定义元组时也可以省略括号,但逗号不能省略,因为 Python 解释器是依靠逗号来定义元组的,这种语法并不推荐使用。

元组也可以向列表一样使用索引来访问其中的元素,但元组的元素是不允许修改的,仅能够对元组进行连接操作。能够使用索引,就意味着元组可以使用切片来进行操作;对元组进行切片操作,依旧会返回元组类型。

另外一种快速取得元组内元素的方式,称为元组解包。这种方式是通过将元组一次性赋予多个变量来完成的,多个变量之间使用逗号分割。例如:a, b, c = (1, 2, 3)

元组在进行数据库操作时会常常被用到,从数据库返回的记录结果集中的记录行,一般就是元组类型。此外,函数的参数也是以元组形式传递的,这在之后的函数中会有更加详细的介绍。

元组中也可以使用列表推导式一样的推导式语法,但是其形成的并不是一个元组,而是一个生成器。具体生成器的概念,可参考后文“函数”一节中生成器的内容。