我有数据的类似形式的巨大的名单,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