字典的点积

11

我想要计算两个字典中值的点积。例如:

dict_1={'a':2, 'b':3, 'c':5, 'd':2}
dict_2={'a':2, 'b':2, 'd':3, 'e':5 }
  • Item 1
  • Item 2
  • Item 3
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函数或编写一个小循环。

1个回答

21

使用迭代dict_1的keys并结合get()函数产生的列表,对dict_2使用sum函数:

dot_product = sum(dict_1[key]*dict_2.get(key, 0) for key in dict_1)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接