2

我正在尝试显示没有逗号、方括号等的 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. 我不知道如何换行
4

6 回答 6

9

简单的方法:

for row in list2D:
    print " ".join(map(str,row))
于 2012-08-08T05:33:29.970 回答
3

也许加入适合您:

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
于 2012-08-08T05:35:39.517 回答
3
print "\n".join(" ".join(map(str, line)) for line in ogm)

如果您想要转置行和列

print "\n".join(" ".join(map(str, line)) for line in zip(*ogm))
于 2012-08-08T05:37:06.663 回答
0

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

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
于 2020-05-19T15:51:25.333 回答
0
for row in list2D:
    print(*row)
于 2021-10-25T17:59:01.540 回答
-1
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一周。你们已经给出了一些很好的解决方案。这就是我是如何做到的......这也有效...... :)

于 2015-02-07T08:34:30.287 回答