gpt4 book ai didi

python - 如何根据值合并两个字典列表

转载 作者:行者123 更新时间:2023-12-04 00:54:23 25 4
gpt4 key购买 nike

我有两个字典列表,假设:

a = [{'id': 1, 'name': 'a'}]
b = [{'id': 1, 'city': 'b'}]

我想要一个列表,它合并两个列表中具有相同 ID 的每个字典。在这个例子中,我希望有:

a = [{'id': 1, 'name': 'a', 'city': 'b'}]

除了将 for 嵌套到另一个之外,还有更简洁的方法吗?

谢谢

最佳答案

您可以使用另一个字典(或 defaultdict 使事情更简单)来跟踪 ID。然后在迭代时更新该字典中的项目。最后字典的值将包含您的列表。

from collections import defaultdict
d = defaultdict(dict)

a = [{'id': 1, 'name': 'a'}, {'id': 3, 'name': 'a'}]
b = [{'id': 1, 'city': 'b'}, {'id': 2, 'city': 'c'}, {'id': 3, 'city': 'd'}]

for item in a + b:
d[item['id']].update(item)
list(d.values())

# [{'id': 1, 'name': 'a', 'city': 'b'},
# {'id': 3, 'name': 'a', 'city': 'd'},
# {'id': 2, 'city': 'c'}]

请注意,这将覆盖 id 以外的重复值 — 因此,如果您有两个 id: 1 和两个不同的城市,您将只会获得最后一个城市。

关于python - 如何根据值合并两个字典列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63863590/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com