我正在尝试对两个字典的值进行点积。例如:
dict_1={'a':2, 'b':3, 'c':5, 'd':2}
dict_2={'a':2, 'b':2, 'd':3, 'e':5 }
在列表形式中,上面的内容如下所示:
dict_1=[2,3,5,2,0]
dict_2=[2,2,0,3,5]
具有相同键的字典的点积将导致:
Ans= 16 [2*2 + 3*2 + 5*0 + 2*3 + 0*5]
我怎样才能用字典实现这个目标?有了这个列表,我就可以调用 np.dot
函数或编写一个小循环。
最佳答案
在通过迭代 dict_1 键生成的列表上使用 sum 函数,并结合针对 dict_2 的 get() 函数:
dot_product = sum(dict_1[key]*dict_2.get(key, 0) for key in dict_1)
关于python - 带字典的点积,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33079472/