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
返回。我想要做的是将匹配的键值相乘,然后将这些值相加。我不太清楚如何做到这一点。如果你们能帮助我,那就太好了。先谢谢你。
答案 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