Python有两种相似的序列类型,tuple和list。 这两者的不同大多数人都能说出:
-
tuple叫做元组用()表示;list叫做列表用[]表示。
-
tuple是不可变的,list是可变的。
可能是由于上面说的这两点都是Python解释器强制限制的,所以大家都耳熟能详。有一些有趣的区别往往不被人注意: 严谨来讲,tuple存储的一般是结构化的数据,每一个字段的意义一般是不同的; 而list存储的一般是同类型的顺序数据。 这样说可能有些抽象,我们举个例子:
一:
>>> import time
>>> time.localtime()
(2008, 2, 5, 11, 55, 34, 1, 36, 0)
第一种time.localtime()返回的类型,是tuple。就像我们上面所说的,这个tuple的第一个位置一定是“年”。 也就是说,这里的tuple就被当作一个轻量级的结构体来使用了。
二:
>>> range(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
第二种是一个典型的list,里面的元素虽然我们也是关注其位置和顺序的,但每个元素都是同样的类型,同样的“功能”。
网友评论