首頁  >  文章  >  後端開發  >  python中列表,元組 ,集合 ,字典之間的區別

python中列表,元組 ,集合 ,字典之間的區別

silencement
silencement原創
2019-06-21 11:25:1012604瀏覽

python中列表,元組 ,集合 ,字典之間的區別

一、列表

1.任何物件的有序集合 
列表是一組任一類型的值,依照一定順序組合而成的 
2.透過偏移讀取 
組成列表的值叫做元素(Elements)。每一個元素被標識一個索引,第一個索引是0,序列的功能都能實現 
3.可變長度,異構以及任意嵌套 
列表中的元素可以是任意類型,甚至是列表類型,也就是說列表可以嵌套 
4.可變的序列 
支援索引、切片、合併、刪除等等操作,它們都是在原處進行修改列表 
5.物件引用數組
列表可以當成普通的數組,每當用到引用時,Python總是會將這個引用指向一個對象,所以程式只需要處理對象的操作。當一個物件賦給一個資料結構元素或變數名稱時,Python總是會儲存物件的引用,而不是物件的一個拷貝

 二、元群組

##1.任意物件有序的集合 

與清單相同 
2.透過偏移存取 
#與清單相同 
3.屬於不可變序列類型 
類似字串,但元組是不可變的,不支援在列表中任何原處修改操作,不支援任何方法呼叫 
4.固定長度、異構、任意嵌套 
固定長度即元組不可變,在不被拷貝的情況下長度固定,其他同列表 
5.物件引用的陣列 
與列表相似,元祖是物件引用的陣列

和list相比 

#1.比清單操作速度快 
2.對資料「寫入保護「 
3.可用於字串格式化中 
4.可作為字典的key

 三、字典

1.透過鍵而不是偏移量來讀取 

字典就是一個關聯數組,是一個透過關鍵字索引的物件的集合,使用鍵-值(key-value)進行存儲,查找速度快 
2.任意物件的無序集合 
#字典中的項目沒有特定順序,以「鍵」為象徵 
3.可變長、異構、任意嵌套 


同列表,嵌套可以包含列表和其他的字典等 
4.屬於可變映射類型 
因為是無序,故不能進行序列操作,但可以在遠處修改,通過鍵映射到值。字典是唯一內建的映射類型(鍵映射到值的物件) 
5.物件引用表 

字典儲存的是物件引用,不是拷貝,和列表一樣。字典的key是不能改變的,list不能當key,字串、元祖、整數等都可以


和list比較,dict有以下幾個特點: 
1.找出和插入的速度極快,不會隨著key的增加而增加 
2.需要佔用大量的內存,內存浪費多 
而list相反: 
1.查找和插入的時間隨著元素的增加而增加 
2.佔用空間小,浪費記憶體很少 

所以,dict是用空間來換取時間的一種方法

 四、集合


1 .是一組key的集合,但不儲存value,且key不能重複 
建立一個set,需要提供一個list作為輸入集合,s = set([1,2,3]),注意,傳入的參數[1, 2, 3] 是一個list,而顯示的set([1, 2, 3]) 只是告訴你這個set內部有1,2,3這3個元素,顯示的[ ]不表示這是一個li​​st 
2.重複元素在set中自動被過濾 

set可以看成數學意義上的無序和無重複元素的集合,因此,兩個set可以做數學意義上的交集、並集等操作

還有一種集合是forzenset( ),是凍結的集合,它是不可變的,存在哈希值,好處是它可以作為字典的key,也可以作為其它集合的元素。缺點是一旦創建便不能更改,沒有add,remove方法


和d​​ict對比 
1.set和dict的唯一區別僅在於沒有存儲對應的value 

2.set的原理和dict一樣,同樣不可以放入可變對象,因為無法判斷兩個可變對像是否相等,也就無法保證set內部「不會有重複元素」###

以上是python中列表,元組 ,集合 ,字典之間的區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn