Python 列表与列表的乘积
从数学上讲,我试图做一个xij*yi乘法。在Python中,我需要将x和y列表相乘,如下所示:Python 列表与列表的乘积,python,list,matrix-multiplication,Python,List,Matrix Multiplication,从数学上讲,我试图做一个xij*yi乘法。在Python中,我需要将x和y列表相乘,如下所示: x = [[1,2,3],[4,5,6],[7,8,9]] y = [10,100,1000] xy = [[] for i in range(3)] for i in range(3): for j in range(3): xy[i][j] += [y[i] * x[i][j]] 但是,我得到了列表索引超出范围的错误,而我希望得到如下输出: xy = [[10, 20,
x = [[1,2,3],[4,5,6],[7,8,9]]
y = [10,100,1000]
xy = [[] for i in range(3)]
for i in range(3):
for j in range(3):
xy[i][j] += [y[i] * x[i][j]]
但是,我得到了列表索引超出范围的错误,而我希望得到如下输出:
xy = [[10, 20, 30],[400, 500, 600],[7000, 8000, 9000]]
你能帮忙吗?你离得很近。问题是您使用双索引[i][j]来引用嵌套列表。你只需要使用索引i。代码的其余部分非常好
x = [[1,2,3],[4,5,6],[7,8,9]]
y = [10,100,1000]
xy = [[] for i in range(3)]
for i in range(3):
for j in range(3):
xy[i] += [y[i] * x[i][j]]
# [[10, 20, 30], [400, 500, 600], [7000, 8000, 9000]]
另一种方法是使用append
使用NumPy的替代方案
我认为这将解决问题
x = [[1,2,3],[4,5,6],[7,8,9]]
y = [10,100,1000]
xy = []
for i in range(3):
xy.append([])
for j in range(3):
xy[i].append(y[i]*x[i][j])
print (xy)
在python中,使用“list.append”向列表中添加值 让我们使用numpy库的乘法函数,借助列表理解来解决这个问题-
import numpy as np
list([np.multiply(x[i],y[i]).tolist() for i in range(len(y))])
[[10, 20, 30], [400, 500, 600], [7000, 8000, 9000]]
只是简单的列表理解:
x = [[1,2,3],[4,5,6],[7,8,9]]
y = [10,100,1000]
xy = [[y[i] * j for j in lst] for i, lst in enumerate(x)]
print(xy)
输出:
[[10, 20, 30], [400, 500, 600], [7000, 8000, 9000]]
精彩的接球!谢谢
x = [[1,2,3],[4,5,6],[7,8,9]]
y = [10,100,1000]
xy = [[y[i] * j for j in lst] for i, lst in enumerate(x)]
print(xy)
[[10, 20, 30], [400, 500, 600], [7000, 8000, 9000]]