Python 3- 如何比较一个字典中的键与另一个字典,将它们的值相加,并将结果存储在第一个字典的值中?

3

如果在dict_one中出现了dict_two的值,我希望以一种Pythonic的方式将相应的值相加,并将它们存储在dict_one中。

dict_one = {'rose':5,
            'daisy':5,
            'lily':5,
            'anthurium':5,
            'sunflower':5}

dict_two = {'rose':1,
            'lily':2,
            'sunflower':5}

for i in dict_two:
    if i in dict_two.keys():
        dict_one[i] += dict_two[i]

print(dict_one)
1个回答

1
您可以使用字典推导式,例如:

{k: v + dict_two.get(k, 0) for k, v in dict_one.items()}

This returns:

{'rose': 6, 'daisy': 5, 'lily': 7, 'anthurium': 5, 'sunflower': 10}

或者如果您更喜欢原地更新dict_one

dict_one.update({k: v + dict_one[k] for k, v in dict_two.items() if k in dict_one})

1
第一个选项更短,更直接,但我确实希望像你的第二个选项那样'原地'更新dict_one。你的代码有效,我很感激你的帮助。 - Matthew Smith

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接