Python 如何打印矩阵,以便有不同的行和列?

Python 如何打印矩阵,以便有不同的行和列?,python,Python,我想打印一个2D列表-期望的结果是打印3行,每行包含4个元素,但输出是一个连续的行 empty = [] row = [] for i in range(0,3): empty.append("\n")#Is this not allowed in python? for j in range(0,4): var1 = int(input("please enter an integer value for row " + str(i+1) +

我想打印一个2D列表-期望的结果是打印3行,每行包含4个元素,但输出是一个连续的行

empty = []
row = []
for i in range(0,3):
   empty.append("\n")#Is this not allowed in python?
for j in range(0,4):
   var1 = int(input("please enter an integer value for row " + str(i+1) + " column " + str(j+1)))

   row.append(var1)
   empty.append(row)
   row= []  

print(empty)

使用numpy创建数组

import numpy
print(np.array(empty))

为了详细说明@NikitParakh的想法,以下是如何使用
numpy
获得您要求的具体结果:

import numpy as np

empty = np.zeros((3, 4))
for i in range(0, 3):
    for j in range(0, 4):
        empty[i][j] = int(input("please enter an integer value for row " + str(i+1) + " column " + str(j+1) + " >"))

print(empty)
运行此代码可以得到如下结果:

please enter an integer value for row 1 column 1 >11
please enter an integer value for row 1 column 2 >22
...
please enter an integer value for row 3 column 4 >1212
[[  11.   22.   33.   44.]
 [  55.   66.   77.   88.]
 [  99. 1010. 1111. 1212.]]
您还可以使用嵌套的Python
list
s执行此操作:

empty = []
for i in range(0, 3):
    empty.append([])
    for j in range(0, 4):
        var1 = int(input("please enter an integer value for row " + str(i+1) + " column " + str(j+1) + " >"))
        empty[i].append(var1)
for i in range(len(empty)):
    print(empty[i])
结果:

please enter an integer value for row 1 column 1 >1
please enter an integer value for row 1 column 2 >2
...
please enter an integer value for row 3 column 4 >12
[1, 2, 3, 4]
[5, 6, 7, 8]
[9, 10, 11, 12]

你可以在矩阵的打印上做更多的工作,使它更漂亮…更像熊猫。保存这项工作以及Pandas可以提供的许多其他好处就是您使用它的原因。

您可以用它创建一个numpy数组
empty
开始时为空,然后添加3行新行。然后添加行,但从不在行之间添加新行。在本例中,您是否已将代码的格式设置为编辑器中的格式?我假设第二个for循环将嵌套在第一个for循环中?即使在这样做之后,您仍将一系列字符串
“\n”
和int添加到数组
empty
。打印数组总是会给你一个“连续列表”。如果你想控制格式,你需要创建一个按你想要的方式格式化的字符串。这对你有帮助吗?我只是回去检查我贴出的答案,看看我是否能帮上更多的忙,或者我是否能找出为什么我的答案没有被提问者接受或投票。