Translate

【エラー】IndexError: list index out of rangeとエラーが出たときに解決する方法【python】

こんにちは。
pythonでいろいろとコードを書いていると様々なエラーを吐くことがありますよね。pythonにおけるエラー、というかプログラミング全般についてですが、解決するためにはエラーコードをしっかりと見る必要があります。

エラーコードを解決する上で一番早いのが、エラーコードをそのままコピペして検索にかけてしまうのが最善です。

pythonは広く使われている言語なので、大抵の場合はstackoverflowというコミュニティサイトで同じ悩みを持っている人がいるため解決は比較的容易です。ただしstackoverflowは英語サイトなので、英語を読解するか翻訳の処理が必要になります。

このブログでは、pythonでよくあるエラーを日本語で解決することを目的とした記事を多く書いていこうと思います。今回は、pythonの処理で「IndexError: list index out of range」とエラーが出たときにどのように対処したらよいのかについて紹介していこうと思います。


IndexError: list index out of rangeが出たときは、該当する行のリストの範囲外の値が選択されている場合が多い



IndexError: list index out of rangeのエラーが表示された場合にもっともよくあるのは、エラーが表示されている行にあるリスト型変数のインデックスを選択する際に範囲外の値が選択されていることが多いです。

どういうことかというと例えば、リスト型変数data=[a,b]とあったとします。これはインデックスが2であり該当するインデックス値が0と1になります。リスト型から特定の値を抽出する場合には、リスト型変数の後に[インデックス値]を指定します。data[0]といったのが例として挙げられます。この書き方であれば「IndexError: list index out of range」は発生しません。

このエラーが発生する場合には、data[2]の場合のようにインデックスの範囲外の値が指定されてしまっているケースになります。ファイル名の取得をforループでやっているときに範囲外のインデックス値が入ってしまうのがよくあるケースかなと思います。


「IndexError: list index out of range」は実際に読み解いてみると実は結構簡単なことによって発生しているエラーになると思うので、このエラーに遭遇した場合には、該当行のリスト型変数のサイズを確認するのが解決の一歩になるでしょう。