gpt4 book ai didi

python - 将字典的值添加到另一个字典

转载 作者:行者123 更新时间:2023-11-28 20:10:13 30 4
gpt4 key购买 nike

我想将一个字典的值添加到另一个字典。例如:

adict = {1: {'a': 13, 'b': 19, 'c': 15}, 2: {'a': 7, 'b': 2, 'c': 0}}

如果我们添加 {1: {'a': 3, 'b': 9, 'c': 23}} 到 adict

那么adict现在应该是:

{1: {'a': 16, 'b': 28, 'c': 38}, 2: {'a': 7, 'b': 2, 'c': 0}}

如果我们添加 {3: {'a': 4}} 那么 adict 现在应该是:

{1: {'a': 16, 'b': 28, 'c': 38}, 2: {'a': 7, 'b': 2, 'c': 0}, 3: {'a': 4}}

如果我们添加 {2: {'a': 1, 'b': 8, 'c': 27, 'd': 11}}

那么adict现在应该是:

{1: {'a': 16, 'b': 28, 'c': 38}, 2: {'a': 8, 'b': 10, 'c': 27, 'd': 11}, 3: {'a': 4}}

执行此操作的最佳方法是什么?

最佳答案

简单的递归函数:

>>> adict = {1: {'a': 13, 'b': 19, 'c':15}, 2: {'a': 7, 'b': 2, 'c':0}}
>>> def dict_add(a,b):
... a = a.copy()
... for k,v in b.items():
... if isinstance(v,(dict,)):
... a[k] = dict_add(a.get(k,{}),v)
... else:
... a[k] = a.get(k,0) + v
... return a
...
>>> dict_add(adict,{1: {'a': 3, 'b': 9, 'c': 23}})
{1: {'a': 16, 'c': 38, 'b': 28}, 2: {'a': 7, 'c': 0, 'b': 2}}
>>> dict_add(dict_add(adict,{1: {'a': 3, 'b': 9, 'c': 23}}),{3:{'a':4}})
{1: {'a': 16, 'c': 38, 'b': 28}, 2: {'a': 7, 'c': 0, 'b': 2}, 3: {'a': 4}}

关于python - 将字典的值添加到另一个字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8606691/

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