Python 类型错误:';发电机&x27;对象在计算向量的点积时不可调用

Python 类型错误:';发电机&x27;对象在计算向量的点积时不可调用,python,vector,typeerror,dot-product,Python,Vector,Typeerror,Dot Product,我是Python新手,尝试使用zip执行2个向量的点积 from typing import List vector = List[float] def dot_prod(v:vector,w:vector) -> float: return sum(v_i*w_i for v_i,w_i in zip(v,w)) dot_prod([1,2,3],[4,5,6]) 我收到以下错误:TypeError:“生成器”对象不可调用 非常感谢您对解决此问题的任何

我是Python新手,尝试使用zip执行2个向量的点积

from typing import List    
vector = List[float]    
def dot_prod(v:vector,w:vector) -> float:    
    return sum(v_i*w_i for v_i,w_i in zip(v,w))

dot_prod([1,2,3],[4,5,6])
我收到以下错误:
TypeError:“生成器”对象不可调用


非常感谢您对解决此问题的任何帮助…谢谢

您不需要手动操作,只需手动即可

首先,您需要安装numpy

pip3 install numpy # If you use python3
pip install numpy # If you use python2
conda install numpy # If you use anaconda
然后使用这个代码

import numpy as np

def dot_prod(x, y):  # X,Y are the vectors
    return np.dot(x, y)
要避免错误,请执行以下操作:

def dot_prod(x, y):
    try:
       return np.dot(x, y)
    except ValueError:
       return np.dot(x, np.array(y).T)

乍一看,我觉得还可以。Seconding@MateenUlhaq,它在我的机器上按预期运行(Python3.8)。代码似乎很好,并且运行在Python3.7.5上。您正在运行哪一版本的Python?是否重新定义了
sum
zip
?所发布的代码可以对Python3进行干净的调用。谢谢大家。它必须与@TomKarzes问题联系起来。我启动了一个新的会话,可以毫无问题地执行。