如何将一个字典中的元素添加到另一个字典中?python
我有一本主词典如何将一个字典中的元素添加到另一个字典中?python,python,dictionary,Python,Dictionary,我有一本主词典 mainDict = {'count': 10, 'a': {'abc': {'additional': 0, 'missing': 0, 'changed': 0}}} 现在我有了一个新的字典,它的键与mainDict中的键相同,称为b,它的值不同 b = {'count': 20, 'a': {'abc': {'additional': 10, 'missing': 10, 'changed': 10}}} 我想更新(加法操作)主字典中键的值,所以我这样做了 mainDi
mainDict = {'count': 10, 'a': {'abc': {'additional': 0, 'missing': 0, 'changed': 0}}}
现在我有了一个新的字典,它的键与mainDict中的键相同,称为b
,它的值不同
b = {'count': 20, 'a': {'abc': {'additional': 10, 'missing': 10, 'changed': 10}}}
我想更新(加法操作)主字典中键的值,所以我这样做了
mainDict = {'count': mainDict['count'] + b['count'], 'a': }
我一直在更新键a的值
。如果我使用mainDict.update(b),那么它将替换以前的值。任何有效的解决方案
所需的最终输出为:
mainDict = {'count': 30, 'a': {'abc': {'additional': 10, 'missing': 10, 'changed': 10}}}
谢谢我要写:
def sum_dicts_recursive(d1, d2):
for k, v1 in d1.items():
if isinstance(v1, dict):
yield (k, dict(process(v1, d2[k])))
else:
yield (k, v1 + d2[k])
result = dict(sum_dicts_recursive(mainDict, b))
# {'count': 30, 'a': {'abc': {'changed': 10, 'additional': 10, 'missing': 10}}}
请注意,sum\u dicts\u recursive
可以作为一个单行生成器表达式编写,但这可能更难理解。我要写:
def sum_dicts_recursive(d1, d2):
for k, v1 in d1.items():
if isinstance(v1, dict):
yield (k, dict(process(v1, d2[k])))
else:
yield (k, v1 + d2[k])
result = dict(sum_dicts_recursive(mainDict, b))
# {'count': 30, 'a': {'abc': {'changed': 10, 'additional': 10, 'missing': 10}}}
请注意,
sum\u dicts\u recursive
可以作为一个单行生成器表达式编写,但这可能更难理解。因此b
与mainDict
具有相同的结构,您希望递归地匹配值并求和它们?因此b
与mainDict
具有相同的结构,你想递归地匹配值并求和吗?非常感谢它工作得很好:)我希望我能像你一样精通Python:(非常感谢它工作得很好:)我希望我能像你一样精通Python:(