如何将匹配键的值相乘?

时间:2017-12-01 05:45:42

标签: python-3.x dictionary

x = {"a": 1, "b": 2, "c": 3}
y = {"b": 4, "c": 5, "d": 6}
for key in x:
    if key in y:
        a = (x[key])
        b = (y[key])

这会将a作为2 3返回,将b作为4 5返回。我想要做的是将匹配的键值相乘,然后将这些值相加。我不太清楚如何做到这一点。如果你们能帮助我,那就太好了。先谢谢你。

2 个答案:

答案 0 :(得分:1)

执行此操作的一种简单方法是保持运行总计,例如:

total = 0
for key in x:
    if key in y:
        a = x[key]
        b = y[key]
        total += a*b
print(total) # 23

但是python具有强大的理解/生成器,可以将其简化为:

>>> sum(x[key]*y[key] for key in x if key in y)
23

答案 1 :(得分:0)

您可以将sum与生成器一起使用:

x = {"a": 1, "b": 2, "c": 3}
y = {"b": 4, "c": 5, "d": 6}

sum(x[k] * y[k] for k in set(x) & set(y))
# 23