肉渣教程

元组

上一节 下一节

简而言之,元组(tuple)也是一种不能修改的有序列表


构建元组(tuple)

元组(tuple)的构建类似列表(list)的定义,只不过元组的定义靠的是小括号。如下所示,变量a、变量b、变量c都是元素类型变量。

a = ( 1, 2, 3 )
b = ( "a", "bc", "666" )
c = ( 1, [ "1", "2" ], 3, 4 )

运行一下

元组(tuple)与 列表(list)的对比

元组(list)也是一种有序序列,和列表(list)非常相似。如下所示:

>>> a = ( 1, 2, 3 )
>>> b = ( "a", "bc", "666" )
>>> print a[0]
1
>>> print a + b
(1, 2, 3, 'a', 'bc', '666')

运行一下


元组和列表非常相似,而更需要关注的是不同点:

  • 元组是不能被修改的有序列表(这是元组与列表最大的区别)
  • 元组可以是空元组,但不存在只有1个元素的元组(换言之,元组的长度,要么为0,要么是不小于2的整数)
  • 所有涉及到修改序列对象的内置方法,对于元组来说,都是不存在的


如下所示,比如想把变量a中的第二个元素改成9,是无法像列表那样直接修改。(除非是重新定义变量a)

>>> a = ( 1, 2, 3 )
>>> a[1] = 9
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
>>> a = ( 1, 9, 3 )
>>> a
(1, 9, 3)


元组可以是空元组,但是不能定义只有1个元素的元组;若强行定义了,则自动返回该元组内唯一的元素。

>>> ()
()
>>> ( 1 )
1
>>> ( "zhuanfou" )
'zhuanfou'

运行一下


元组类型经常被用来存储坐标数据。原因是多元的,一则坐标是相对固定的,不需要被修改,要修改也是改整个坐标;二来经常会遇到海量坐标数据,存储同等量级的坐标数据,元组比列表更省内存空间;三则看起来爽一点。


元组

上一节 下一节