Python元組與列表的異同點詳解

Python元組與列表的異同點

相同點:
  1. 列表和元組都屬於有序序列;
  2. 都支持使用雙向索引訪問其中的元素;
  3. 以及使用count()方法統計指定元素的出現次數和index()方法獲取指定元素的索引,len()、map()、filter()等大量內置函數和+、in等運算符也都可以作用於列表和元組。
不同點:
  1. 元組屬於不可變序列,不可以直接修改元組中元素的值,也無法爲元組增加或刪除元素。
>>> x = (1, 2, 3)       #直接把元組賦值給一個變量
>>> x[1] = 4            #元組是不可變的
TypeError: 'tuple' object does not support item assignment
  1. 元組沒有提供append()、extend()和insert()等方法,無法向元組中添加元素;同樣,元組也沒有remove()和pop()方法,也不支持對元組元素進行del操作,不能從元組中刪除元素,而只能使用del命令刪除整個元組。
  2. 元組也支持切片操作,但是隻能通過切片來訪問元組中的元素,而不允許使用切片來修改元組中元素的值,也不支持使用切片操作來爲元組增加或刪除元素。
  3. 元組緩存於Python運行時環境,每次使用元組時無須訪問內核去分配內存。
  4. Python的內部實現對元組做了大量優化,訪問速度比列表更快。如果定義了一系列常量值,主要用途僅是對它們進行遍歷或其他類似用途,而不需要對其元素進行任何修改,那麼一般建議使用元組而不用列表。
  5. 元組在內部實現上不允許修改其元素值,從而使得代碼更加安全,例如調用函數時使用元組傳遞參數可以防止在函數中修改元組,而使用列表則很難保證這一點。
  6. 元組可用作字典的鍵,也可以作爲集合的元素。而列表則永遠都不能當作字典鍵使用,也不能作爲集合中的元素。

Python元組與列表詳解

傳送門:Python列表詳解
傳送門:Python元組詳解

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章