【问题标题】:Dot product with dictionaries带字典的点积
【发布时间】:2015-10-12 11:01:51
【问题描述】:

我正在尝试对两个字典的值进行点积。例如:

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 函数或编写一个小循环。

【问题讨论】:

    标签: python numpy


    【解决方案1】:

    在通过迭代 dict_1 键生成的列表上使用 sum 函数以及针对 dict_2 的 get() 函数:

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

    【讨论】:

      猜你喜欢
      • 2021-04-30
      • 2019-07-23
      • 1970-01-01
      • 1970-01-01
      • 2017-10-16
      • 1970-01-01
      • 2013-12-21
      • 2018-07-31
      • 2015-03-14
      相关资源
      最近更新 更多