Python 将值从1列表传递到矩阵中的子列表
我目前正在创建一个矩阵,而不使用numpy。下面有一个例子: 如果整数输入数小于定义的矩阵维数,则使用0填充空白。例如: 数字输入=1,2,3,4;行数=3;列=2 给出(嵌套列表格式):[[1,2]、[3,4]、[0,0]] 我有此案例的以下代码:Python 将值从1列表传递到矩阵中的子列表,python,for-loop,matrix,range,nested-lists,Python,For Loop,Matrix,Range,Nested Lists,我目前正在创建一个矩阵,而不使用numpy。下面有一个例子: 如果整数输入数小于定义的矩阵维数,则使用0填充空白。例如: 数字输入=1,2,3,4;行数=3;列=2 给出(嵌套列表格式):[[1,2]、[3,4]、[0,0]] 我有此案例的以下代码: def mat(*Num,row,col): Out=[] for i in range(row): In = [] for j in range(col): In.append(0)
def mat(*Num,row,col):
Out=[]
for i in range(row):
In = []
for j in range(col):
In.append(0) # Initialize the defined matrix with 0
Out.append(In)
k=0 # Index for number input list
for i in range(len(Out)):
for j in range(i):
Out[i][j]=Num[k] # Update values from integer input list into the matrix
k+=1
return Out
mat(1,2,3,4, row=3, col=2)
然而,我得到了这个矩阵:[[0,0],[1,0],[2,3]]
而不是[[1,2],[3,4],[0,0]
我应该如何改进以将所有值传递到适当位置的列表中?提前谢谢你的帮助 只需生成并附加新行即可
def mat(*num, row, col):
matrix = []
k = 0
n = len(num)
for i in range(row):
new_row = []
for j in range(col):
if k < n:
new_row.append(num[k])
k += 1
else:
new_row.append(0)
matrix.append(new_row)
return matrix
print(mat(1,2,3,4, row=3, col=2))
def mat(*编号、行、列):
矩阵=[]
k=0
n=len(num)
对于范围内的i(行):
新_行=[]
对于范围内的j(列):
如果k