循环打印两个列表以获得Python中的两列

时间:2016-12-13 11:26:06

标签: python

我正在尝试将数据打印在两列中。我有的数据

print(summary_data) 
[('105689_S2', 9477442, 488850, 563029), ('WT101589_S1', 9849916, 507676, 584819)]

我可以通过循环打印我的数据:

for data in summary_data:
    print 'Name                      ', data[0]
    print 'Calculations1', data[0], ':    ', data[1]
    print 'Calculations2', data[0], ':    ', data[2]
    print 'Calculations3', data[0], ':    ', data[3]
    print '-------------------------------------------'

提供:

Sample name         105689_S2
Calculations1 :     9477442
Calculations2 :     488850
Calculations3 :     563029
-------------------------------------------
Sample name         WT101589_S1
Calculations1 :     9849916
Calculations2 :     507676
Calculations3 :     584819
-------------------------------------------

我希望我的输出格式如下:

Sample name         105689_S2   WT101589_S1
Calculations1 :     9477442   9849916
Calculations2 :     488850   507676
Calculations3 :     563029   584819
-------------------------------------------

我试过了

zipped = ([list(x) for x in zip(*summary_data)])
for data in zipped:
    print data[0]

给出了:

105689_S2
909172
31908
31360

但是现在我迷失在如何将这两个专栏打印出来......有人可以帮助我吗?

1 个答案:

答案 0 :(得分:3)

您可以像这样使用zip()

summary_data = [('105689_S2', 9477442, 488850, 563029), ('WT101589_S1', 9849916, 507676, 584819)]
titles = ['Sample name:', 'Calculations1:', 'Calculations2:', 'Calculations3:']

for item in zip(titles, *summary_data):
    print '{}\t{}\t{}'.format(*item)

<强>输出:

Sample name:     105689_S2       WT101589_S1
Calculations1:   9477442 9849916
Calculations2:   488850  507676
Calculations3:   563029  584819