Python-vector TypeError:zip参数#1必须支持迭代

Python-vector TypeError:zip参数#1必须支持迭代,python,vector,typeerror,Python,Vector,Typeerror,我对python还很陌生,并试图学习有关向量的教程 我有以下代码: def vector_add(v, w): return [v_i + w_i for v_i, w_i in zip(v, w)] def vector_subtract(v, w): return [v_i - w_i for v_i, w_i in zip(v, w)] def vector_sum(vectors): return reduce(vector_add, vectors)

我对python还很陌生,并试图学习有关向量的教程

我有以下代码:

def vector_add(v, w):
    return [v_i + w_i for v_i, w_i in zip(v, w)]

def vector_subtract(v, w):
    return [v_i - w_i for v_i, w_i in zip(v, w)]

def vector_sum(vectors):
    return reduce(vector_add, vectors)  

def scalar_multiply(c, v):
    #c is a line v is a vector
    return [c * v_i for v_i in v]

def vector_mean(vectors):
    #compute the vectors whose ith element is the mean of the ith elements of the input vectors
    n = len(vectors)
    return scalar_multiply(1/n, vector_sum(vectors))
vector_mean([1,2,3,4])
我得到以下错误:

Traceback (most recent call last):
  File "vectors.py", line 21, in <module>
    vector_mean([1,2,3,4])
  File "vectors.py", line 20, in vector_mean
    return scalar_multiply(1/n, vector_sum(vectors))
  File "vectors.py", line 11, in vector_sum
    return reduce(vector_add, vectors)  
  File "vectors.py", line 5, in vector_add
    return [v_i + w_i for v_i, w_i in zip(v, w)]
TypeError: zip argument #1 must support iteration
回溯(最近一次呼叫最后一次):
文件“vectors.py”,第21行,在
向量_均值([1,2,3,4])
文件“vectors.py”,第20行,以矢量表示
返回标量乘(1/n,向量和(向量))
文件“vectors.py”,第11行,矢量求和
返回减少(向量加,向量)
文件“vectors.py”,第5行,在vector_add中
返回[v_i+w_i代表v_i,w_i在zip中(v,w)]
TypeError:zip参数#1必须支持迭代
我猜这是因为我传递了一个整数或什么,但我不确定? 任何关于为什么会发生这种情况以及如何修复此错误的帮助都将不胜感激。 谢谢 斯科特

并将该字符串修复为:

scalar_multiply(1/float(n), vector_sum(vectors))
(强制除法浮动):

并将该字符串修复为:

scalar_multiply(1/float(n), vector_sum(vectors))

(强制除法为浮动:

向量
应该取一个向量列表,但只传递一个。正因为如此,
zip
失败。
vector\u意味着
应该获取一个向量列表,但是,您只传递一个。因此,
zip
失败。