2016-11-30 59 views
-3

一起打印出来,下面是我多么希望他们打印出来我有三个列表。我需要在三列

  list 1    list 2     list 3 

      1      1      1 
      2      2      2 
      3      3      3 
      4      4      4 
+1

你可以使用'zip(list1,list2,list3)'到t将列表放入列中。除此之外...发布一些代码! – tdelaney

回答

1

使用zip。假设你有三个列表,

>>> a=[1, 2, 7] 
>>> b=[3, 4, 8] 
>>> c=[5, 6, 9] 

然后,

for row in zip(a, b, c) : 
    print (*row) 

输出:

1 3 5 
2 4 6 
7 8 9 
+0

这不适用于python 3.x.但是'对于zip(a,b,c)行:print(* row)'做。 – tdelaney

+0

感谢您的建议@tdelaney – Jarvis

0

如果所有的列表具有相同的长度,你可以遍历它们,并通过指数得到元素:

l=[1,2,3,4] 
l2=[5,6,7,8] 
l3=[9,10,11,12] 
for i in range(len(l)): 
    if i == 0: 
     print('l1 l2 l3') 
    print('{0} {1} {2}'.format(l[i], l2[i], l3[i])) 

输出:

l1 l2 l3 
1 5 9 
2 6 10 
3 7 11 
4 8 12 

需要注意的是,如果你想直列你应该在格式化指定长度:

for i in range(len(l)): 
    if i == 0: 
     print('l1 l2 l3') 
    print('{0:>{length}} {1:>{length}} {2:>{length}}'.format(l[i], l2[i], l3[i], length=2)) 

输出:

l1 l2 l3 
1  5  9 
2  6 10 
3  7 11 
4  8 12 
0

这就是我正在寻找

for row in zip(list1, list2, list3) : 
      print ("{0:<10} {1:>8} {2:>16}".format(*row))