将列表输出为列

时间:2013-04-12 12:25:58

标签: python list

我有3个大型列表,我想输出为列,[0] [0] [0]然后向下。我目前编写的代码(适用于较小的列表)是这样的:

f=open("Clustered_energies.txt", "w")
for i in range(0, len(frame_position)):
print >> f, frame_position[i],energy[i],cell_volume[i]
f.close()

这给了我一个超出范围错误的列表索引。我猜我需要使用列表理解,我试过这个:

print [(i,e,c) for i in frame_position for e in energy for c in cell_volume]

但是那个输出从每个列表中反复重复一个值,是列表理解的方法吗?或者我的原始代码可以修复吗?

2 个答案:

答案 0 :(得分:3)

这样的东西?

[[x,y,z] for x,y,z in zip(frame_position,energy,cell_volume)]

答案 1 :(得分:1)

我的第一个想法是使用zip,但它停在最短的列表中,因此我会使用izip_longest(在Python3中称为zip_longest以供将来参考):

import itertools
for i, e, c in itertools.izip_longest(frame_position, energy, cell_volume, fillvalue=" "):
    print i, e, c