在Python中将两个不同字典的值相乘

use*_*072 6 python dictionary matrix-multiplication

我有两个单独的词典,其中包含键和值,我想将它们相加.这些值应该只乘以它们所拥有的键.

dict1 = {'a': 1, 'b': 2, 'c': 3}
dict2 = {'a': 15, 'b': 10, 'd': 17}

dict3 = dict.items() * dict.items()
print dict3

#### #dict3 should equal 
{'a': 15, 'b': 20}
Run Code Online (Sandbox Code Playgroud)

如果有人可以提供帮助,那就太好了.谢谢!

Nik*_* B. 16

你可以使用dict理解:

>>> {k : v * dict2[k] for k, v in dict1.items() if k in dict2}
{'a': 15, 'b': 20}
Run Code Online (Sandbox Code Playgroud)

或者,在2.7之前的Python中,dict构造函数与生成器表达式结合使用:

>>> dict((k, v * dict2[k]) for k, v in dict1.items() if k in dict2)
{'a': 15, 'b': 20}
Run Code Online (Sandbox Code Playgroud)