位置:首頁 > 軟件操作教程 > 編程開發(fā) > Python > 問題詳情

在python里,dict的特點(diǎn)

提問人:楊紫紅發(fā)布時(shí)間:2020-11-26
dict的第一個(gè)特點(diǎn)是查找速度快,無論dict有10個(gè)元素還是10萬個(gè)元素,查找速度都一樣。而list的查找速度隨著元素增加而逐漸下降。
不過dict的查找速度快不是沒有代價(jià)的,dict的缺點(diǎn)是占用內(nèi)存大,還會(huì)浪費(fèi)很多內(nèi)容,list正好相反,占用內(nèi)存小,但是查找速度慢。
由于dict是按 key 查找,所以,在一個(gè)dict中,key不能重復(fù)。

dict的第二個(gè)特點(diǎn)就是存儲(chǔ)的key-value序?qū)κ菦]有順序的!這和list不一樣:
d = {
    'Adam': 95,
    'Lisa': 85,
    'Bart': 59
}
當(dāng)我們?cè)噲D打印這個(gè)dict時(shí):
>>> print d
{'Lisa': 85, 'Adam': 95, 'Bart': 59}
打印的順序不一定是我們創(chuàng)建時(shí)的順序,而且,不同的機(jī)器打印的順序都可能不同,這說明dict內(nèi)部是無序的,不能用dict存儲(chǔ)有序的集合。

dict的第三個(gè)特點(diǎn)是作為 key 的元素必須不可變,Python的基本類型如字符串、整數(shù)、浮點(diǎn)數(shù)都是不可變的,都可以作為 key。但是list是可變的,就不能作為 key。
可以試試用list作為key時(shí)會(huì)報(bào)什么樣的錯(cuò)誤。
不可變這個(gè)限制僅作用于key,value是否可變無所謂:
{
    '123': [1, 2, 3],  # key 是 str,value是list
    123: '123',  # key 是 int,value 是 str
    ('a', 'b'): True  # key 是 tuple,并且tuple的每個(gè)元素都是不可變對(duì)象,value是 boolean
}
最常用的key還是字符串,因?yàn)橛闷饋碜罘奖恪?/div>

繼續(xù)查找其他問題的答案?

相關(guān)視頻回答
回復(fù)(0)
返回頂部