dict的第一個特點是查找速度快,無論dict有10個元素還是10萬個元素与学,查找速度都一樣登渣。而list的查找速度隨著元素增加而逐漸下降。
不過dict的查找速度快不是沒有代價的邓了,dict的缺點是占用內(nèi)存大恨诱,還會浪費很多內(nèi)容,list正好相反骗炉,占用內(nèi)存小照宝,但是查找速度慢。
由于dict是按 key 查找句葵,所以厕鹃,在一個dict中,key不能重復(fù)乍丈。
dict的第二個特點就是存儲的key-value序?qū)κ菦]有順序的剂碴!這和list不一樣:
d = {
'Adam': 95,
'Lisa': 85,
'Bart': 59
}
當我們試圖打印這個dict時:
>>> print d
{'Lisa': 85, 'Adam': 95, 'Bart': 59}
打印的順序不一定是我們創(chuàng)建時的順序,而且轻专,不同的機器打印的順序都可能不同忆矛,這說明dict內(nèi)部是無序的,不能用dict存儲有序的集合铭若。
dict的第三個特點是作為 key 的元素必須不可變洪碳,Python的基本類型如字符串、整數(shù)叼屠、浮點數(shù)都是不可變的瞳腌,都可以作為 key。但是list是可變的镜雨,就不能作為 key嫂侍。
可以試試用list作為key時會報什么樣的錯誤。
不可變這個限制僅作用于key,value是否可變無所謂:
{? ? '123': [1, 2, 3],# key 是 str挑宠,value是list123: '123',# key 是 int菲盾,value 是 str('a', 'b'): True# key 是 tuple,并且tuple的每個元素都是不可變對象各淀,value是 boolean}
最常用的key還是字符串懒鉴,因為用起來最方便。