【发布时间】:2021-03-25 21:10:51
【问题描述】:
我有一个字典列表,如下所示
data = [{'Person1':['a', 'b', 'c']}, {'Person2':['1', '2', '3']}, {'Person3':['x', 'y', 'z']}]
它包含近 7000000 个字典。然后我有一个字符串列表,例如
people = ['person1', 'person3']
长度为 450000。此列表中的所有字符串都作为字典列表中的键存在。
根据这个字符串列表过滤字典列表的最快/最有效的方法是什么,以便返回一个只包含与列表中的字符串对应的键的新字典,例如
d = {'Person1':['a', 'b', 'c']}, 'Person3':['x', 'y', 'z']}
这是我的代码,但它需要很长时间才能运行,我想知道解决这个问题的最佳方法是什么。
d = {}
for p in people:
for i in data:
for k in i:
if p == k.lower():
d[p] = i[k]
【问题讨论】:
标签: python-3.x list dictionary