我陷在Python中dict
結構,我想了解緊湊字典的執行情況,更快的迭代解釋這裏[Python-Dev] More compact dictionaries with faster iteration by Raymond HettingerPython的緊湊詞典查找是如何執行的,int值是否在指示符內?
在此消息,雷蒙德會顯示當前字典的實現是和它如何能更高效地存儲內存。他描繪字典結構是這樣的:
d = {'timmy': 'red', 'barry': 'green', 'guido': 'blue'}
目前存儲爲:
entries = [['--', '--', '--'],
[-8522787127447073495, 'barry', 'green'],
['--', '--', '--'],
['--', '--', '--'],
['--', '--', '--'],
[-9092791511155847987, 'timmy', 'red'],
['--', '--', '--'],
[-6480567542315338377, 'guido', 'blue']]
相反,數據應該被安排如下:
indices = [None, 1, None, None, None, 0, None, 2]
entries = [[-9092791511155847987, 'timmy', 'red'],
[-8522787127447073495, 'barry', 'green'],
[-6480567542315338377, 'guido', 'blue']]
我的問題是如果索引數據是數字0,1,2,輸入項目時,新字典實現如何執行查找,? 只是爲了清楚,實際值是不同的(例如密鑰的散列值)?
一些參考我已經看了Dictionaries are ordered in Python 3.6+
有一個鏈接到該網頁上包含的食譜,你應該考慮看看它:http://code.activestate.com/recipes/578375/ –
我其實看過它,謝謝你的建議我會深入研究它 – Vinny