gpt4 book ai didi

python - 合并两个字典

转载 作者:行者123 更新时间:2023-12-02 09:41:08 27 4
gpt4 key购买 nike

我有两个字典,如下:

D1={'a':1,'b':2,'c':3}

D2={'b':2,'c':3,'d':1}

我想合并这两个字典,结果应该如下:

D3={'a':1,'b':2,'c':3,'b':2,'c':3,'d':1}

如何在 python 中实现这一点?

最佳答案

I want to merge these two dictionaries and the result should be as follows:

D3={'a':1,'b':2,'c':3,'b':2,'c':3,'d':1}

how can I achieve this in python?

你不能。 Python 字典中的每个键只能有一个值。您可以做的是将列表或集合作为值。

这是一个带有集合的示例:

d1 = { 'a': 1, 'b': 2, 'c': 3 }
d2 = { 'a': 1, 'b': 5, 'd': 4 }
d3 = {}
def add_dict(target, d):
for key in d:
target.setdefault(key, set([])).add(d[key])

add_dict(d3, d1)
add_dict(d3, d2)

这将为您提供d3:

{'a': set([1]), 'c': set([3]), 'b': set([2, 5]), 'd': set([4])}

您也可以使用列表来执行此操作(可能更接近您的示例):

d1 = { 'a':1, 'b':2, 'c': 3}
d2 = { 'b':2 ,'c':3, 'd': 1}
d3 = {}
def add_dict(target, d):
for key in d:
target.setdefault(key, []).append(d[key])

add_dict(d3, d1)
add_dict(d3, d2)

你会得到这个:

{'a': [1], 'c': [3, 3], 'b': [2, 2], 'd': [1]}

但是,查看 {'a':1,'b':2,'c':3,'b':2,'c':3,'d':1} (这不能是字典),看来您正在追求完全不同的数据结构。也许是这样的:

d1 = { 'a':1, 'b':2, 'c': 3}
d2 = { 'b':2 ,'c':3, 'd': 1}
result = []

result += [ { 'key': key, 'value': d1[key] } for key in d1 ]
result += [ { 'key': key, 'value': d2[key] } for key in d2 ]

这会产生这样的结果,它看起来更接近您最初想到的数据结构:

[ {'value': 1, 'key': 'a'},
{'value': 3, 'key': 'c'},
{'value': 2, 'key': 'b'},
{'value': 3, 'key': 'c'},
{'value': 2, 'key': 'b'},
{'value': 1, 'key': 'd'} ]

关于python - 合并两个字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12511801/

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