我有两本字典。在
list1 = [{'user_id':23, 'user_name':'John', 'age':30},
{'user_id':24, 'user_name':'Shaun', 'age':31},
{'user_id':25, 'user_name':'Johny', 'age':32}]
list2 =[{'user_id':23},
{'user_id':25}]
现在我想要输出
^{pr2}$
我需要最有效的方法,因为我的list1
可能包含数百万行。在
Tags:
您需要稍微转换一下
list2
以获得快速查找。我会把它变成set
然后使用过滤列表理解构建
^{pr2}$list3
。在这种情况下,in list2_ids
非常快,因为它使用来自set
的查找而不是线性搜索:结果:
正如之前的海报所说,您需要从列表2中创建一个ID列表:
完成此操作后,还可以使用过滤器功能:
^{pr2}$这一点虽然没有优化,但它的好处是有多个并行计算实现(如果处理的是大量数据,则可能需要这种实现)。在
也就是说,最好的解决方案性能可能是设置交集(comparison):
如果您确定列表不包含重复项,则可以忽略设置。在
当键是}时,我会将你的{}转换成字典。在
user_id
,值是name
和{现在,当您查看这个
dict
时,即使dict
有很多元素,对于find来说,复杂性是O(1)
。在在这种情况下,查找所有用户id的复杂性是
O(len(list2))
相关问题 更多 >
编程相关推荐