我有一个矩阵(我不使用numpy):
matrix = [
['.', '.', '.', '.', '.', '.', '.'],
['.', '.', '.', '.', '.', '.', '.'],
['.', '.', '.', '.', '.', '.', '.'],
['.', '.', '.', '.', '.', '.', '.'],
['.', '.', '.', '.', '.', '.', '.'],
['.', '.', '.', '.', '.', '.', '.'],
['.', '.', '.', '.', '.', '.', '.'],
]
我想编写一个函数,以表格形式打印此矩阵,以便print(function(matrix))显示:
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
或任何特定值'。已在我的整个程序中被替换。
目前,我有:
def printMatrix(matrix):
for i in matrix:
print(' '.join(i))
但是,每次我打印矩阵时,这只是返回None,因为我没有给函数任何要返回的东西。如何避免这种情况?
答案 0 :(得分:4)
您的函数已经可以进行打印,调用时无需使用print()
。所以改变:
print(printMatrix(matrix))
只是:
printMatrix(matrix)
仅出于副作用而调用的函数不需要返回任何内容,并且您不应尝试使用返回的值。
或者,您可以更改函数,使其以字符串形式返回格式化的矩阵,而不是单独打印:
def formatMatrix(matrix):
return "\n".join(" ".join(row) for row in matrix)
print(formatMatrix(matrix))
答案 1 :(得分:1)
matrix = [
['.', '.', '.', '.', '.', '.', '.'],
['.', '.', '.', '.', '.', '.', '.'],
['.', '.', '.', '.', '.', '.', '.'],
['.', '.', '.', '.', '.', '.', '.'],
['.', '.', '.', '.', '.', '.', '.'],
['.', '.', '.', '.', '.', '.', '.'],
['.', '.', '.', '.', '.', '.', '.'],
]
for line in matrix:
print(*line, sep=' ')
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
答案 2 :(得分:0)
我不完全理解您在问题第一部分中的要求。但是第二部分很容易。您给出的示例是2D数组。
代码
for row in matrix:
for r in row:
print(r, end=" ")
print ("\n")
OR
def printmatrix (matrix):
for row in matrix:
for r in row:
print(r, end=" ")
print ("\n")
答案 3 :(得分:0)
[print(*mat) for mat in matrix]
输出:
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
答案 4 :(得分:0)
或使printMatrix
如下:
def printMatrix(matrix):
s=''
for i in matrix:
s += (' '.join(i)+'\n')
return s
现在您的代码将按预期工作。