python中两个字典列表的乘法和求和

python中两个字典列表的乘法和求和,python,list,dictionary,Python,List,Dictionary,我想把所有相同的键相乘,然后求和 预期产量 dict1={'NegSm': [1.0, 0.59375], 'NegBig': [1.0], 'NegMed': [1.0]} dict2={'NegBig': [-21.666666666666668], 'NegMed': [-15.0], 'NegSm': [-6.0]} dict1={“NegSm”:[1.0,0.59375],“NegBig”:[1.0],“NegMed”:[1.0]} dict2={“NegBig”:[-21.6666

我想把所有相同的键相乘,然后求和

预期产量

dict1={'NegSm': [1.0, 0.59375], 'NegBig': [1.0], 'NegMed': [1.0]}
dict2={'NegBig': [-21.666666666666668], 'NegMed': [-15.0], 'NegSm': [-6.0]}
dict1={“NegSm”:[1.0,0.59375],“NegBig”:[1.0],“NegMed”:[1.0]}
dict2={“NegBig”:[-21.66668],“NegMed”:[-15.0],“NegSm”:[-6.0]}
out=0
对于k1,dict1.items()中的VAL:
对于VAL中的v1:
对于第2条[k1]中的v2:
输出+=v1*v2
打印(输出)
印刷品:

-46.229166667

或:

out=sum(
v1*v2表示k1,dict1中的VAL。items()表示dict2中v2的VAL表示v1[k1]
)
打印(输出)
dict1={“NegSm”:[1.0,0.59375],“NegBig”:[1.0],“NegMed”:[1.0]}
dict2={“NegBig”:[-21.66668],“NegMed”:[-15.0],“NegSm”:[-6.0]}
out=0
对于k1,dict1.items()中的VAL:
对于VAL中的v1:
对于第2条[k1]中的v2:
输出+=v1*v2
打印(输出)
印刷品:

-46.229166667

或:

out=sum(
v1*v2表示k1,dict1中的VAL。items()表示dict2中v2的VAL表示v1[k1]
)
打印(输出)
我非常喜欢,只是想使用

我真的很喜欢,只是想添加一个稍微不同的解决方案使用


你应该展示你已经尝试过的东西。是否保证两个字典中都有密钥?您应该展示您尝试过的内容。密钥是否保证存在于两个词典中?
1.0*-6.0 + 0.59375*-6.0 + 1.0*-15 + 1.0*-21.66666666
from itertools import product

out = sum(
    v1*v2
    for k in dict1
    for v1, v2 in product(dict1[k], dict2[k]))

print(out)  #-> -46.22916666666667