Python 合并两个具有相同键但作为另一个值添加的DICT(不替换)

Python 合并两个具有相同键但作为另一个值添加的DICT(不替换),python,dictionary,Python,Dictionary,似乎显示了一个附加到数组的示例,而不是向dict添加另一个值 dict_1={a:{price:4000},b:{price:14000} dict_2={a:{折扣:0100},b:{折扣:0400} 我希望将它们合并为: merged_dict: { a: { price: 4000, discount: 0100 }, b: {

似乎显示了一个附加到数组的示例,而不是向dict添加另一个值

dict_1={a:{price:4000},b:{price:14000}

dict_2={a:{折扣:0100},b:{折扣:0400}

我希望将它们合并为:

merged_dict: { a: {
                   price: 4000, 
                   discount: 0100
                  }, 
               b: {
                   price: 14000, 
                   discount: 0400
               } 
              }

如何做到这一点?两个字典总是有相同的键。

字典理解可以解决这个问题(我从问题中正确格式化了你的字典定义,用Python 3.8.0测试):


似乎有用!想解释一下你做了什么吗?主要是两个星号的作用。很高兴听到!它是字典理解(请参阅)和使用
**
操作符将一个字典中的键/值对转储到新字典中的组合。请随意。如果有3个字典要合并,这会有什么不同?您可以一次将其与其他字典合并,就像这样:
merged_dict={k:{**dict_1[k],**dict_2[k],**dict_3[k]}用于dict_2.keys()中的k(
(这仍然假设它们都有相同的键)。
>>> dict_1 = {'a': {'price': 4000}, 'b': {'price': 14000} }
>>> dict_2 = {'a': {'discount': 100}, 'b': {'discount': 400} }
>>> merged_dict = {k: { **dict_1[k], **dict_2[k] } for k in dict_2.keys()}
>>> merged_dict
{'a': {'price': 4000, 'discount': 100}, 'b': {'price': 14000, 'discount': 400}}