在每行之后显示没有逗号,括号等的python 2d列表和换行符

时间:2012-08-08 05:28:35

标签: python list

我正在尝试显示没有逗号,括号等的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. 我不知道如何换行
  3. 任何帮助将不胜感激。谢谢!

5 个答案:

答案 0 :(得分:7)

简单方法:

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

答案 1 :(得分:3)

print "\n".join(" ".join(map(str, line)) for line in ogm)

如果要转换行和列

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

答案 2 :(得分:2)

也许加入适合你:

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

答案 3 :(得分:0)

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一周。你们给了一些优秀的解决方案。这是我怎么做的....这也有效.......:)

答案 4 :(得分:0)

要使显示更加可读,可以使用选项卡或在单元格中填充空格以对齐列。

def printMatrix(matrix):
    for lst in matrice:
        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