我有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]
但是那个输出从每个列表中反复重复一个值,是列表理解的方法吗?或者我的原始代码可以修复吗?
答案 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