Python如何将1D列表打印为2D

时间:2018-09-14 03:32:21

标签: python-3.x

我想将列表[1,2,3,4,5,6,7,8,9]打印为

1 2 3
4 5 6
7 8 9

这是我的代码

for i,j in enumerate(list):
     if i  is not 0 and i % 3==0:
         print()
     else:
         print(j,end=" ")

我的结果是

1 2 3
5 6
8 9

有人可以帮忙解释为什么会发生这种情况并给我一些建议吗?

2 个答案:

答案 0 :(得分:0)

您应该无条件打印列表项j,而不是仅在不打印换行符时打印列表项:

l = [1,2,3,4,5,6,7,8,9]
for i,j in enumerate(l):
     if i  is not 0 and i % 3==0:
         print()
     print(j,end=" ")

答案 1 :(得分:0)

您可以这样做:

tgt=[1,2,3,4,5,6,7,8,9]
n=3
print('\n'.join([' '.join(map(str, sl)) for sl in [tgt[i:i+n] for i in range(0,len(tgt),n)]]))

打印:

1 2 3
4 5 6
7 8 9