简而言之,元组(tuple)也是一种不能修改的有序列表。
元组(tuple)的构建类似列表(list)的定义,只不过元组的定义靠的是小括号。如下所示,变量a、变量b、变量c都是元素类型变量。
a = ( 1, 2, 3 ) b = ( "a", "bc", "666" ) c = ( 1, [ "1", "2" ], 3, 4 )
元组(list)也是一种有序序列,和列表(list)非常相似。如下所示:
>>> a = ( 1, 2, 3 ) >>> b = ( "a", "bc", "666" ) >>> print a[0] 1 >>> print a + b (1, 2, 3, 'a', 'bc', '666')
元组和列表非常相似,而更需要关注的是不同点:
如下所示,比如想把变量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'
元组类型经常被用来存储坐标数据。原因是多元的,一则坐标是相对固定的,不需要被修改,要修改也是改整个坐标;二来经常会遇到海量坐标数据,存储同等量级的坐标数据,元组比列表更省内存空间;三则看起来爽一点。