在这一节,我们来看Python中另外一个和list类似的类型:Tuple。

如果你熟悉Swift,对这种类型应该并不陌生。简单来说,它就是一个只读的list,一旦创建之后,就只能访问它的值,而不能再对其修改,包括修改已有元素的值,以及添加删除元素,都不可以。

创建Tuple

要创建一个Tuple,我们可以直接使用小括号包含Tuple所有的值:

empty = ()
numbers = (1, 2, 3)
mix = (1, 2, 'Three')

也可以在创建的时候,使用tuple关键字,对于上面这三种情况来说,用不用tuple关键字并没有区别:

empty = tuple()
numbers = tuple(1, 2, 3)
mix = tuple(1, 2, 'Three')

但是,使用tuple关键字有一个好处,就是可以把list转型成Tuple,来对比下面两种用法:

numbers1 = ([1, 2, 3])
# ([1, 2, 3])
numbers2 = tuple([1, 2, 3])
# (1, 2, 3)

从注释的结果中,我们就能看到这两种用法的差异了。或者,我们还可以把两个Tuple相加,形成新的Tuple:

numbers = (1, 2, 3)
sum = numbers + numbers
print(sum)
# (1, 2, 3, 1, 2, 3)

最后,我们再来看一种比较奇特的用法,为了实现两个numbers拼接的效果,我们还可以这样:

print((numbers) * 2)
# (1, 2, 3, 1, 2, 3)

当然,结果和使用+是一样的。在Python里,我们可以在()写一个Tuple值的模式,然后,用*N的形式,让它重复N次。

访问Tuple

创建好Tuple之后,和list一样,我们就能用各种形式的range访问其中的元素了:

print(numbers[0])       # 1
print(numbers[0:2])     # (1, 2)
print(numbers[0:3:2])   # (1, 3)

从注释的结果中可以看到,访问其中一个元素的时候,得到的就是对应的值;而当访问一个范围的时候,得到的仍旧是一个Tuple。

Tuple的常用操作

接下来,是Tuple类型支持的常用操作。

获取Tuple的基本信息

既然和list类型类似,那么Tuple支持下面这些函数当然也是必须的:

print(len(numbers)) # 3
print(min(numbers)) # 1
print(max(numbers)) # 3
print(3 in numbers) # True

从函数名就可以理解它们的含义了。

删除Tuple

当我们不再需要一个Tuple的时候,还可以明确使用del删掉它,这样做的一个结果就是,在del之后,访问删掉的Tuple会导致运行时错误:

numbers = (1, 2, 3)
del numbers
print(numbers)

'''
Traceback (most recent call last):
  File "/Users/puretears/Desktop/tmp/CollectionsTypes/CollectionTypes.py", line 7, in <module>
    print(numbers)
NameError: name 'numbers' is not defined
'''

What's next?

以上,就是和Tuple相关的最基本用法,下一节,我们来看Python中的另外一个常用集合类型:Dictionary。

所有订阅均支持 12 期免息分期

¥ 59

按月订阅

一个月,观看并下载所有视频内容。初来泊学,这可能是个最好的开始。

开始订阅

¥ 512

按年订阅

一年的时间,让我们一起疯狂地狩猎知识吧。比按月订阅优惠 28%

开始订阅

¥ 1280

泊学终身会员

永久观看和下载所有泊学网站视频,并赠送 100 元商店优惠券。

我要加入
如需帮助,欢迎通过以下方式联系我们