商業轉載請聯繫作者獲得授權,非商業轉載請註明出處。
作者:auxten
鏈接:http://zhuanlan.zhihu.com/auxten/20111754
來源:知乎
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,裏面的元素雖然我們也是關注其位置和順序的,但每個元素都是同樣的類型,同樣的“功能”。