将值从 1 个列表传递到矩阵中的子列表
Passing Values from 1 List to Sublists in a Matrix
我目前正在不使用 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) # 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))
我目前正在不使用 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) # 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))