【发布时间】:2016-11-05 17:51:53
【问题描述】:
您好,假设我有一个 2D 数组 a = [[1,2,1,2], [3,4,5,3], [8,9,4,3]],我想将其打印在表格等网格中。到目前为止我的代码是:
def printArray(a):
for row in range(len(a[0])):
for col in range (len(a[0])):
b = print("{:8.3f}".format(a[row][col]), end = " ")
print(b)
当它被打印出来时,它给了我:
1.000 2.000 1.000 2.000 None
3.000 4.000 5.000 3.000 None
8.000 9.000 4.000 3.000 None
然后报错:
File "hw8pr2.py", line 17, in printArray
b = print("{:8.3f}".format(a[row][col]), end = " ")
IndexError: list index out of range
谁能告诉我为什么会这样?我也不希望每行末尾都有“无”。我希望它输出:
1.000 2.000 1.000 2.000
3.000 4.000 5.000 3.000
8.000 9.000 4.000 3.000
【问题讨论】:
-
你不需要声明一个变量来打印东西。它没有返回,因为一旦带有变量 b 的 for 循环结束,变量 b 实际上什么都没有。删除最后一行。
-
您对列和行都使用
len(a[0])。如果您有一个 sqare 矩阵,它会起作用,但对于您给出的示例,情况并非如此。 -
为了打印漂亮的表格,Python 有一个巧妙地命名为 prettytable 的模块。