Python基础教程2.4 元组:不可修改的序列

2.4 元组:不可修改的序列

与列表一样,元组也是序列,唯一的差别在于元组是不能修改的(你可能注意到了,字符串也不能修改)。元组语法很简单,只要将一些值用逗号分隔,就能自动创建一个元组。

>>> 1, 2, 3

(1, 2, 3)

如你所见,元组还可用圆括号括起(这也是通常采用的做法)。

>>> (1, 2, 3)

(1, 2, 3)

空元组用两个不包含任何内容的圆括号表示。

>>> ()

()

你可能会问,如何表示只包含一个值的元组呢?这有点特殊:虽然只有一个值,也必须在它后面加上逗号。

>>> 42

42

>>> 42,

(42,)

>>> (42,)

(42,)

最后两个示例创建的元组长度为1,而第一个示例根本没有创建元组。逗号至关重要,仅将值用圆括号括起不管用:(42)与42完全等效。但仅仅加上一个逗号,就能完全改变表达式的值。

>>> 3 * (40 + 2)

126

>>> 3 * (40 + 2,)

(42, 42, 42)

函数tuple的工作原理与list很像:它将一个序列作为参数,并将其转换为元组①。如果参数已经是元组,就原封不动地返回它。

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

(1, 2, 3)

>>> tuple('abc')

('a', 'b', 'c')

>>> tuple((1, 2, 3))

(1, 2, 3)

你可能意识到了,元组并不太复杂,而且除创建和访问其元素外,可对元组执行的操作不多。元组的创建及其元素的访问方式与其他序列相同。

>>> x = 1, 2, 3

>>> x[1]

2

>>> x[0:2]

(1, 2)

元组的切片也是元组,就像列表的切片也是列表一样。为何要熟悉元组呢?原因有以下两个。

 它们用作映射中的键(以及集合的成员),而列表不行。映射将在第4章详细介绍。

 有些内置函数和方法返回元组,这意味着必须跟它们打交道。只要不尝试修改元组,与元组“打交道”通常意味着像处理列表一样处理它们(需要使用元组没有的index和count等方法时例外)。

一般而言,使用列表足以满足对序列的需求。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180828G0C39T00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券