質問: int(row[5]) if colE >= 10: count += 1 print(count) f.close() ``` としてみたところ、list index out of range というエラーがでました。これはどういうことなのでしょうか、またどこか間違っている個所があれば教えていただきたいです。 以下のようなcsvファイルです ダウンロードした時刻:2019/10/16 12:01:46 寺泊 寺泊 年 月 日 時 風速(m/s) 風向 2018 2 12 1 10.1 西北西 2018 2 12 2 9.1 西 2018 2 12 3 10 西 2018 2 12 4 11.4 西 2018 2 12 5 10.4 西 2018 2 12 6 10.8 西 2018 2 12 7 11.1 西 2018 2 12 8 12.4 西 2018 2 12 9 11.5 西北西 2018 2 12 10 11.2 西 2018 2 12 11 8.9 西北西 2018 2 12 12 8.1 西北西 2018 2 12 13 5.7 西北西 2018 2 12 14 6.3 西北西 2018 2 12 15 5.5 西北西 2018 2 12 16 7.1 西北西 2018 2 12 17 7 西北西 2018 2 12 18 6.4 西北西 2018 2 12 19 8 西北西 2018 2 12 20 8.6 西北西 2018 2 12 21 7.9 西北西 2018 2 12 22 8.7 西北西 2018 2 12 23 8.9 西 2018 2 12 24 10.1 西 2018 2 13 1 5.2 北西 2018 2 13 2 7 西北西 2018 2 13 3 6.4 西北西 2018 2 13 4 5.4 北西 2018 2 13 5 5.4 北西 2018 2 13 6 3.9 北西 2018 2 13 7 3.5 北西 2018 2 13 8 1.2 北 2018 2 13 9 3 北西 2018 2 13 10 3.4 北西 2018 2 13 11 3.1 北西 2018 2 13 12 4 北西 2018 2 13 13 1.9 北西 2018 2 13 14 2.2 北西 2018 2 13 15 2.1 北西 2018 2 13 16 2.7 北西 2018 2 13 17 2.3 西北西 2018 2 13 18 0.5 西 2018 2 13 19 4.9 西北西 2018 2 13 20 9.9 西 2018 2 13 21 11.1 西 2018 2 13 22 8.3 西北西 2018 2 13 23 10.1 西 2018 2 13 24 7.7 西
回答: > > list index out of range というエラー > > > これは、IndexErrorを指していますね?(エラーは正確に貼り付けた方が回答が得られやすくなります) IndexErrorはシーケンスアクセス時に範囲外の要素を参照した場合に送出されます。 組み込み例外 — Python 3.8.0 ドキュメント 記載されたコードにおいて、シーケンスへのアクセスは6行目の `colE = int(row[5])` のみなので、ここでのアクセス時に問題があるようです。 さて、このコードを修正する方法ですが、 * そもそもE列に対応する添字は4なので、それを修正する(5だと西北西などがヒットするはずです) * `print(len(row))` などしてみて、おかしい値が読み込まれていないか調べる * `if len(row) != 5: sys.exit()` のように、長さがおかしい列を見つけたら終了するように作り変える などが考えられます。