使用list和tuple

小結

list和tuple是Python內置的有序集合,一個可變,一個不可變。根據需要來選擇使用它們。
list

Python內置的一種數據類型是列表:list。list是一種有序的集合,可以隨時添加和刪除其中的元素。

比如,列出班裏所有同學的名字,就可以用一個list表示:

classmates = [‘Michael’, ‘Bob’, ‘Tracy’]
classmates
[‘Michael’, ‘Bob’, ‘Tracy’]

變量classmates就是一個list。用len()函數可以獲得list元素的個數:

len(classmates)
3
tuple

另一種有序列表叫元組:tuple。tuple和list非常類似,但是tuple一旦初始化就不能修改,比如同樣是列出同學的名字:

classmates = (‘Michael’, ‘Bob’, ‘Tracy’)

現在,classmates這個tuple不能變了,它也沒有append(),insert()這樣的方法。其他獲取元素的方法和list是一樣的,你可以正常地使用classmates[0],classmates[-1],但不能賦值成另外的元素。

不可變的tuple有什麼意義?因爲tuple不可變,所以代碼更安全。如果可能,能用tuple代替list就儘量用tuple。

tuple的陷阱:當你定義一個tuple時,在定義的時候,tuple的元素就必須被確定下來,比如:

t = (1, 2)
t
(1, 2)

如果要定義一個空的tuple,可以寫成():

t = ()
t
()

但是,要定義一個只有1個元素的tuple,如果你這麼定義:

t = (1)
t
1

定義的不是tuple,是1這個數!這是因爲括號()既可以表示tuple,又可以表示數學公式中的小括號,這就產生了歧義,因此,Python規定,這種情況下,按小括號進行計算,計算結果自然是1。

所以,只有1個元素的tuple定義時必須加一個逗號,,來消除歧義:

發佈了49 篇原創文章 · 獲贊 1 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章