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

时间:2013-03-11 09:14:52

标签: python matrix-multiplication dictionary

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

即。

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}

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

3 个答案:

答案 0 :(得分:16)

您可以使用dict comprehension

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

或者,在2.7之前的Python中,dict构造函数与generator expression结合使用:

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

答案 1 :(得分:0)

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

def dict_mul(d1, d2):
    d3 = dict()
    for k in d1:
        if k in d2:
            d3[k] = d1[k] * d2[k]
    return d3

print dict_mul(dict1, dict2)

答案 2 :(得分:0)

从我的电话中,很难输入代码。这应该可以解决问题:

for key, value in dict1.iteritems():
    if key in dict2:
         dict3[key] = int(dict1[key]) * int(dict2[key])