Python | list index out of range エラーの原因と解決策

Python エラー,Python

Python | list index out of range エラーの原因と解決策

Pythonの実行時に発生するエラー「list index out of range」の原因と解決策について紹介しています。

IndexError: list index out of range
IndexError: リスト 範囲外のインデックス

確認環境

Windows11 ローカル
Python python-3.11.1

list index out of range エラーの原因

「list index out of range」というPythonの実行エラーはリストが持つインデックスの範囲外のインデックス番号を指定して呼び出そうとした場合に発生するエラーです。

例えば以下のような事がエラーの発生原因にあります。

  • 指定したリストのインデックス番号が対象のリストの範囲外

list index out of range エラーの発生例と解決策

「list index out of range」エラーが発生するコード例とその解決策を紹介します。

指定したリストのインデックス番号が対象のリストの範囲外

簡単な例だと「データが5つのリスト」に対して「5」「6」以上のインデックス番号を指定して値を取得しようとした際に同エラーは発生します。

このエラーの発生パターンは「負のインデックス番号を指定した場合」「空のリストの場合」「スライスで範囲外を指定した場合」なども含まれます。

data = [60, 80, 20, 40, 50]

# 変数に指定したインデックス番号のリストの値を格納
val = data[6]

print(val)
# IndexError: list index out of range

上記のコードエラーを解決するには、指定しているインデックス番号がリストの範囲に入るように修正します。

data = [60, 80, 20, 40, 50]

# 変数に指定したインデックス番号のリストの値を格納
val = data[3]

print(val)
# 40

指定するインデックス番号がプログラム上、変更できない場合はtry…except文でエラーの例外処理を実装するか、事前にリストの持つインデックスの範囲内かどうかチェックを行う必要があります。