显示python 2d列表,每行后不带逗号,括号等和换行符



我正在尝试显示一个没有逗号、括号等的 python 2D 列表,我想在列表的每一行结束后显示一个新行。

这是我这样做的尝试:

ogm = repr(ogm).replace(',', ' ')
ogm = repr(ogm).replace('[', ' ')
ogm = repr(ogm).replace("'", ' ')
ogm = repr(ogm).replace('"', ' ')
print repr(ogm).replace(']', ' ') 

这是输入:

[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 0, 1, 0, 0, 0, 0, 0, 0], [1, 1, 1, 0, 0, 0, 0, 0, 0, 0], [0, 1, 1, 0, 0, 0, 0, 0, 1, 1], [0, 0, 0, 0, 0, 0, 1, 1, 1, 0], [0, 0, 0, 1, 1, 0, 1, 1, 1, 1], [0, 0, 1, 1, 0, 0, 1, 1, 1, 1], [0, 1, 0, 0, 0, 0, 0, 1, 1, 0], [0, 0, 0, 0, 0, 0, 1, 1, 0, 0], [1, 0, 1, 1, 1, 1, 0, 0, 0, 0]]

这是输出:

"'    0  0  0  0  0  0  0  0  0  0    1  1  0  1  0  0  0  0  0  0    1  1  1  0  0  0  0  0  0  0    0  1  1  0  0  0  0  0  1  1    0  0  0  0  0  0  1  1  1  0    0  0  0  1  1  0  1  1  1  1    0  0  1  1  0  0  1  1  1  1    0  1  0  0  0  0  0  1  1  0    0  0  0  0  0  0  1  1  0  0    1  0  1  1  1  1  0  0  0  0    '"

我遇到了两个问题:

  1. 有我无法摆脱的流浪"和"
  2. 我不知道如何做换行符

简单的方法:

for row in list2D:
    print " ".join(map(str,row))

也许加入适合你:

print "n".join(" ".join(str(el) for el in row) for row in ogm)
0 0 0 0 0 0 0 0 0 0
1 1 0 1 0 0 0 0 0 0
1 1 1 0 0 0 0 0 0 0
0 1 1 0 0 0 0 0 1 1
0 0 0 0 0 0 1 1 1 0
0 0 0 1 1 0 1 1 1 1
0 0 1 1 0 0 1 1 1 1
0 1 0 0 0 0 0 1 1 0
0 0 0 0 0 0 1 1 0 0
1 0 1 1 1 1 0 0 0 0
print "n".join(" ".join(map(str, line)) for line in ogm)

如果要转置行和列

print "n".join(" ".join(map(str, line)) for line in zip(*ogm))
for row in list2D:
    print(*row)

为了使显示更具可读性,您可以使用制表符或用空格填充单元格来对齐列。

def printMatrix(matrix):
    for lst in matrix:
        for element in lst:
            print(element, end="t")
        print("")

它将显示

6       8       99
999     7       99
3       7       99

而不是

6 8 99
999 7 99
3 7 99
ogm = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 0, 1, 0, 0, 0, 0, 0, 0], [1, 1, 1, 0, 0, 0, 0, 0, 0, 0], [0, 1, 1, 0, 0, 0, 0, 0, 1, 1], [0, 0, 0, 0, 0, 0, 1, 1, 1, 0], [0, 0, 0, 1, 1, 0, 1, 1, 1, 1], [0, 0, 1, 1, 0, 0, 1, 1, 1, 1], [0, 1, 0, 0, 0, 0, 0, 1, 1, 0], [0, 0, 0, 0, 0, 0, 1, 1, 0, 0], [1, 0, 1, 1, 1, 1, 0, 0, 0, 0]]
s1 = str(ogm)
s2 = s1.replace('], [','n')
s3 = s2.replace('[','')
s4 = s3.replace(']','')
s5= s4.replace(',','')
print s5

顺便说一句,"实际上是两个"没有任何间隙

我正在学习Python一个星期。 你们给出了一些出色的解决方案。 这是我是如何做到的。这也行得通。。:)

最新更新