天天看點

python中dict的特點_022-Python中dict的特點

dict的第一個特點是查找速度快,無論dict有10個元素還是10萬個元素,查找速度都一樣。而list的查找速度随着元素增加而逐漸下降。

不過dict的查找速度快不是沒有代價的,dict的缺點是占用記憶體大,還會浪費很多内容,list正好相反,占用記憶體小,但是查找速度慢。

由于dict是按 key 查找,是以,在一個dict中,key不能重複。

dict的第二個特點就是存儲的key-value序對是沒有順序的!這和list不一樣:

d = {

'Adam': 95,

'Lisa': 85,

'Bart': 59

}

當我們試圖列印這個dict時:

>>> print d

{'Lisa': 85, 'Adam': 95, 'Bart': 59}

列印的順序不一定是我們建立時的順序,而且,不同的機器列印的順序都可能不同,這說明dict内部是無序的,不能用dict存儲有序的集合。

dict的第三個特點是作為 key 的元素必須不可變,Python的基本類型如字元串、整數、浮點數都是不可變的,都可以作為 key。但是list是可變的,就不能作為 key。

可以試試用list作為key時會報什麼樣的錯誤。

不可變這個限制僅作用于key,value是否可變無所謂:

{

'123': [1, 2, 3], # key 是 str,value是list

123: '123', # key 是 int,value 是 str

('a', 'b'): True # key 是 tuple,并且tuple的每個元素都是不可變對象,value是 boolean

}

最常用的key還是字元串,因為用起來最友善。

作業:

請設計一個dict,可以根據分數來查找名字,已知成績如下:

Adam: 95,

Lisa: 85,

Bart: 59.