Python 将值从1列表传递到矩阵中的子列表

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)

我目前正在创建一个矩阵,而不使用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))
def mat(*编号、行、列):
矩阵=[]
k=0
n=len(num)
对于范围内的i(行):
新_行=[]
对于范围内的j(列):
如果k