我有數據的類似形式的巨大的名單,1M以上的記錄(雖然這是一個非常簡單的形式)項的指標是:的Python:發現含有X列表
[
{'name': 'Colby Karnopp', 'ids': [441, 231, 822]},
{'name': 'Wilmer Lummus', 'ids': [438, 548, 469]},
{'name': 'Hope Teschner', 'ids': [735, 747, 488]},
{'name': 'Adolfo Fenrich', 'ids': [515, 213, 120]}
...
]
給定一個id爲735,我想找到Hope Teschner的索引2,因爲給定的id屬於Hope的id列表。什麼是最好的(性能明智)的方式來做到這一點?
感謝您的任何提示。
編輯
也許應該提到這一點,但一個ID 可能出現不止一次。如果一個特定的ID 確實不止一次出現,我希望給定ID的最低索引。
列表中的數據將會頻繁更改,所以我對構建字典感到猶豫不決,因爲字典需要修改/重建每次更新列表,因爲索引是字典中的值 - 即。更改列表中某個項目的位置將需要更新字典中的每個值,其索引大於新更改的索引。
編輯編輯
我只是做了一些基準,似乎重建字典是相當快的甚至超過100萬的記錄。我想我現在會繼續尋求這個解決方案。
一般來說,任何能夠提高搜索性能的任何東西都需要你排序,或者創建一個單獨的散列表等等。所以最重要的問題是......你需要訪問多少次這個清單?這是建立一次,並多次訪問?我不是一個蟒蛇開發者,所以我只是在那裏談論普遍性。 – 2009-12-29 17:48:02