【发布时间】:2016-04-06 13:59:55
【问题描述】:
我有两个包含字典的列表:
list_a:
[{'id': 1, 'name': 'test'}, {'id': 2, 'name': 'test1'},....]
list_b:
[{'id': 1, 'age': 10}, {'id': 2, 'age': 20}, ....]
我想合并这两个列表,结果是:
[{'id': 1, 'name': 'test', 'age': 10}, {'id': 2, 'name': 'test1', 'age': 20}....]
我想使用嵌套循环来制作它:
result= []
for i in list_a:
for j in list_b:
if i['id'] == j['id']:
i['age']=j['age']
result.append(i)
但是list_a有2000个元素,list_b的id是属于list_a的,但是list_b的个数可能小于2000。这种方法时间复杂度太高,有没有更好的合并方式?
【问题讨论】:
-
我猜你想要
"name": "test1"在你的第二个合并字典中? -
我投票决定将此问题作为题外话结束,因为这是一个性能问题,而不是调试问题,这意味着它属于 Code Review,而不是 Stack Overflow。 codereview.stackexchange.com
-
@ArtOfWarfare Stack Overflow 用于特定问题,不一定仅用于调试。也就是说,我认为这个问题对于 Stack Overflow 来说“过于宽泛”,因为有太多可能的答案,因此我投票决定关闭它。
-
你的意图我不清楚,因为你对合并时处理公共字段只字未提。