三分钟读懂Python中的元组

python

元组

我们发现列表和字符串有许多共同点,例如可以用索引来访问,以及切割的操作。他们属于序列类型的公共特性。Python 的日益发展,使得其他的序列类型会被逐渐地加入到语言特性中。其中就有另一种序列类型:元组。

元组由一系列被逗号分隔开的值组成,例如:

>>> t = 12345, 54321, 'hello!'

>>> t[0]

12345

>>> t

(12345, 54321, 'hello!')

>>> # 元组也可以嵌套:

... u = t, (1, 2, 3, 4, 5)

>>> u

((12345, 54321, 'hello!'), (1, 2, 3, 4, 5))

>>> # 元组不可被修改:

... t[0] = 88888

Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

TypeError: 'tuple' object does not support item assignment

>>> # 但是可以包含可以被修改的对象:

... v = ([1, 2, 3], [3, 2, 1])

>>> v

([1, 2, 3], [3, 2, 1])

正如你所见,元组在输出时总是带有两侧的括号,这样一来,嵌套的元组可以被清楚地区分开;但是在输入时,并不一定要带上两侧的括号,尽管有时带上括号非常有必要(例如元组作为一个很长的表达式的一部分)。不能对元组中的项进行赋值,但在创建元组时,可以传入可修改的对象,例如列表。

虽然元组看起来和列表很像,但它们的使用场合和使用目的往往不同。元组是 不可修改的,并且经常包含着不同类型的元素,总是通过解包(本章的后面会介绍)或索引(命名元组可以通过属性索引的方式)来访问。而列表是 可修改的,并且往往包含着同样类型的元素,通过遍历的方式来进行访问。

一个特别的问题是如何创建一个空的或只有一个元素的元组:语法上有一些小窍门。空的元组可以用一对空的括号来创建;只有一个元素的元组可以用一个后面跟着逗号的值来创建(只在括号里放一个元素可不行)。这些方法虽然有点丑陋,但挺好用的。例如:

>>> empty = ()

>>> singleton = 'hello',    # <-- 注意后面的逗号

>>> len(empty)

0

>>> len(singleton)

1

>>> singleton

('hello',)

语句 t = 12345, 54321, 'hello!' 是一个 元组解包的例子:元素 12345, 54321 和 'hello!' 一起组成了一个元组。下面这样的操作也同样可以做到:

>>> x, y, z = t

这被称为 序列解包 ,所有右值的序列都可以使用这种语法。序列解包要求在等号的左边有着和序列内元素数量相同的变量。到这里也许你也发现了,多重赋值就是利用元组和序列解包来实现的。

以上是 三分钟读懂Python中的元组 的全部内容, 来源链接: utcz.com/z/524097.html

回到顶部