我如何使用列表理解来编写以下内容?
def mv(A,X,n):
Y = [0]*n
for i in range(n):
for j in range(n):
Y[i] += A[i][j] * X[j]
return Y
我相信A是一个矩阵,X是一个向量。这是我到目前为止所尝试的,但它没有输出相同的东西:
def mv2(A,X,n):
res = [sum((A[i][j] * X[i]) for i in range(n) for j in range(n))]
return res
答案 0 :(得分:5)
您非常接近正确的答案,因为您应该在正确的目标上应用sum
return [sum([A[i][j] * X[j] for j in range(n)]) for i in range(n)]
注意:如果您想使用库进行数学运算,numpy
是一个不错的选择
import numpy as np
def mv2(A, X):
A = np.array(A)
X = np.array(X)
return np.dot(A, X)