Python之列表與元組的區別詳解

Candy_GL發表於2018-09-10

版權宣告:本文為博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/qq_878799579/article/details/72909828

相同點:都是序列型別

回答它們的區別之前,先來說說兩者有什麼相同之處。list 與 tuple 都是序列型別的容器物件,可以存放任何型別的資料、支援切片、迭代等操作


 



 

不同點一:不可變 VS 可變

兩種型別除了字面上的區別(括號與方括號)之外,最重要的一點是tuple是不可變型別,大小固定,而 list 是可變型別、資料可以動態變化,這種差異使得兩者提供的方法、應用場景、效能上都有很大的區別。

列表特有方法:








 

 


 






 

 





 

tuple 用於儲存異構(heterogeneous)資料,當做沒有欄位名的記錄來用,比如用 tuple 來記錄一個人的身高、體重、年齡。

person = (“zhangsan”, 20, 180, 80) 
比如記錄座標上的某個點

point = (x, y) 
而列表一般用於儲存同構資料(homogenous),同構資料就是具有相同意義的資料,比如下面的都是字串型別

[“zhangsan”, “Lisi”, “wangwu”] 
再比如 list 存放的多條使用者記錄

[(“zhangsan”, 20, 180, 80), (“wangwu”, 20, 180, 80)] 
資料庫操作中查詢出來的記錄就是由元組構成的列表結構。

因為 tuple 作為沒有名字的記錄來使用在某些場景有一定的侷限性,所以又有了一個 namedtuple 型別的存在,namedtuple 可以指定欄位名,用來當做一種輕量級的類來使用。

相關文章