【发布时间】:2011-11-11 17:51:02
【问题描述】:
我有 2 个字典列表。列表 A 长 34,000,列表 B 长 650,000。我本质上是根据键匹配将所有 List B 字典插入到 List A 字典中。目前,我正在做显而易见的事情,但它需要永远(说真的,就像一天)。一定有更快的方法!
for a in listA:
a['things'] = []
for b in listB:
if a['ID'] == b['ID']:
a['things'].append(b)
【问题讨论】:
-
你检查过这个问题了吗:stackoverflow.com/questions/38987/… - 我不确定你是否试图用 listB 覆盖 listA 的内容,但如果是这样,那就是你的答案。
-
感谢 mwan100,但我将 listB 项目插入 listA 项目,而不是覆盖。此外,该海报承认,如果性能是一个问题,它不是一个很好的解决方案
-
a["ID"] 的值是否唯一?
-
DSM,仅在 A 侧。字典来自一个 ['ID'] 是主键的数据库。一个 A 有很多 B。
-
看看这里 - wiki.python.org/moin/PythonSpeed/PerformanceTips。 “避免点”和“局部变量”部分可能会有所帮助。连同下面的答案。
标签: python dictionary