2017-02-07 6 views
-1

が私のpython programming.The次のコードでは初心者だ:インデックスエラー:コンパイルがエラーを与えながら、Pythonの

T_[j] = line[1] 
IndexError: list index out of range 

i=104 
l=i+92 
p_=dict() 
T_=dict() 
z_=dict() 
H2O_VMR_=dict() 
O3_VMR_=dict() 
cov_H2O_VMR_=dict() 
with open('chevallierl91_clear_q.txt') as f: 
    for j in range(2,5000): 
    for line in itertools.islice(f, i, l): 
     line=line.split() 
     p_[j] = line[0] 
     T_[j] = line[1] 
     z_[j] = line[2] 
     H2O_VMR_[j] = line[3] 
     O3_VMR_[j] = line[4] 
     cov_H2O_VMR_[j]=np.cov(H2O_VMR_[j]) 
     print H2O_VMR_[j] 
    i=l+2 
    l=i+92 
+1

これは、行には期待する値(おそらく空白行)が含まれていないことを意味し、line.split()呼び出しの結果は1つの要素のみのリストになります。なぜそれが失敗するのか分かるように、分割した後に行を印刷することをお勧めします。 – TheoretiCAL

+0

内側のループで分割した後に 'if len(line)<5:continue'を追加すると、このエラーを避けることができ、結果が期待どおりに機能しているかどうかを確認できます。 – deeenes

+0

貴重なコメント...私はそれを分割した後に行を印刷し、ファイルcozに空白行がありましたが、私はコードをコンパイルできませんでした。すべてがうまくいくようです...ありがとうございました – caty

答えて

1

を助けてくださいそれは正確に言うのは難しいのですが、それは可能性がありますその

line=line.split() 

は単一の結果しか返しませんでした。その結果、リストの唯一の要素はline [0]でした。

@TheoretiCALがコメントしたように、正確に何が起こっているかを見るために結果を印刷してみてください。

+0

私は私はそれを修正して、今はすべてが良いです – caty

+0

素晴らしい、あなたの問題を解決することができたことをうれしく思っています:) –

関連する問題