我们给出2个稀疏向量v1和v2表示为计数器,我们需要返回它们的点积。到目前为止我所掌握的代码:
import collections
v1 = collections.Counter('aaabbbcccd')
v2 = collections.Counter('bcdd')
l1=list(v1.items())
l2=list(v2.items())
我不确定如何从这里继续,因为l1和l2包含:
[(“b”,3),(“c”,3),(“d”,1),(“a”,3)]
[(“b”,1),(“c”,1),(“d”,2)]
我不知道如何从这个表格的列表中计算点积。(在本例中为3*1+3*1+1*2+3*0=8)
同样,这段代码也可以用于任意长度的向量,而不仅仅是4
任何想法都将不胜感激。在
只需迭代dict的所有键并求和乘积(对于不存在的值,返回0):
我没有使用列表,因为在我看来,这会使问题变得不必要地复杂化。。。在
还请注意,我提供的答案适用于任何python dict。对于
^{pr2}$Counter
实例,第二步更简单/更干净:相关问题 更多 >
编程相关推荐