1

[0][0][0]、そして下に、列として出力したい3つの大きなリストがあります。私の現在書かれたコード(小さなリストで機能した)は次のとおりです。

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]

しかし、それからの出力は、各リストの値を何度も繰り返しますが、リスト内包表記は正しいのでしょうか? または、元のコードを修正できますか?

4

2 に答える 2

3

このようなもの?

[[x,y,z] for x,y,z in zip(frame_position,energy,cell_volume)]
于 2013-04-12T12:29:29.587 に答える
1

私の最初のアイデアは使用zipでしたが、それは最短のリストで停止するので、使用しますizip_longest(zip_longest将来の参照のために Python3 で呼び出されます):

import itertools
for i, e, c in itertools.izip_longest(frame_position, energy, cell_volume, fillvalue=" "):
    print i, e, c
于 2013-04-12T12:31:49.737 に答える