Python 此代码适用于平方矩阵,但对其他矩阵显示错误

Python 此代码适用于平方矩阵,但对其他矩阵显示错误,python,list,matrix,Python,List,Matrix,方形矩阵的输出: 输入行数:2 输入列数:2 [[0, 0], [0, 0]] 在矩阵中输入元素:1 在矩阵中输入元素:2 在矩阵中输入元素:3 在矩阵中输入元素:4 [[1, 2], [3, 4]] 非平方矩阵的误差: 输入行数:1 输入列数:4 [[0], [0], [0], [0]] 在矩阵中输入元素:1 在矩阵中输入元素:2 回溯(最近一次呼叫最后一次): 文件“C:/Users/kcgov/PycharmProjects/making_matrix/creating_a_matrix

方形矩阵的输出:

输入行数:2
输入列数:2
[[0, 0], [0, 0]]
在矩阵中输入元素:1
在矩阵中输入元素:2
在矩阵中输入元素:3
在矩阵中输入元素:4
[[1, 2], [3, 4]]
非平方矩阵的误差:

输入行数:1
输入列数:4
[[0], [0], [0], [0]]
在矩阵中输入元素:1
在矩阵中输入元素:2
回溯(最近一次呼叫最后一次):
文件“C:/Users/kcgov/PycharmProjects/making_matrix/creating_a_matrix.py”,第10行,在
新矩阵()
文件“C:/Users/kcgov/PycharmProjects/making_matrix/creating_a_matrix.py”,第8行,在新矩阵中
矩阵[k][p]=int(输入(“在矩阵中输入元素:”)
索引器:列表分配索引超出范围

您需要在矩阵初始化中切换带列的行,还需要切换循环范围,第一个循环必须遍历行,而第二个循环必须遍历每行中的列:

def new_matrix():
    Rows=int(input("enter number of rows:"))
    columns=int(input("enter number of columns:"))
    matrix=[[0]*Rows for _ in range(columns)]
    print (matrix)
    for k in range (columns):
        for p in range(Rows):
            matrix[k][p]=int(input("Enter elements in matrix:"))
    print (matrix)
new_matrix()
测试用例#1:(方阵,行=列)

测试用例#2:(行<列)

测试用例#3:(行>列)


我不能重现你的错误。这对我来说很有效。我也没有错,但很明显,你已经颠倒了“行”和“列”的标准含义。@MrGeek Oops…@KrishnaChaitanya作为这篇文章的作者,你可以接受最好的答案,这是最有帮助的答案,勾选投票下面的复选标记,使其变为绿色。
def new_matrix():
    Rows=int(input("enter number of rows:"))
    columns=int(input("enter number of columns:"))
    # columns, Rows
    matrix=[[0]*columns for _ in range(Rows)]
    print (matrix)
    # Rows, columns
    for k in range(Rows):
        for p in range(columns):
            matrix[k][p]=int(input("Enter elements in matrix:"))
    print (matrix)
new_matrix()
enter number of rows: 2
enter number of columns: 2
[[0, 0], [0, 0]]
Enter elements in matrix: 1
Enter elements in matrix: 2
Enter elements in matrix: 3
Enter elements in matrix: 4
[[1, 2], [3, 4]]
enter number of rows: 1
enter number of columns: 4
[[0, 0, 0, 0]]
Enter elements in matrix: 1
Enter elements in matrix: 2
Enter elements in matrix: 3
Enter elements in matrix: 4
[[1, 2, 3, 4]]
enter number of rows: 4
enter number of columns: 1
[[0], [0], [0], [0]]
Enter elements in matrix: 1
Enter elements in matrix: 2
Enter elements in matrix: 3
Enter elements in matrix: 4
[[1], [2], [3], [4]]