ホーム › エラー解決 › Python › IndexError
Python ERROR

Python IndexError: list index out of range の解決法

リストの存在しない位置を参照したときに出るエラーです。要素数と添字の関係を理解すれば防げます。

このエラーメッセージ

IndexError: list index out of range

原因

❌ エラーになるコード

NG
nums = [10, 20, 30]
print(nums[3])

✅ 修正したコード

OK
nums = [10, 20, 30]
print(nums[2])     # 最後の要素
print(nums[-1])    # 末尾はマイナスでも取れる
print(len(nums))   # 要素数は3
▶ 修正済みコードを実行エディタで開く
progoのPython実行環境(インストール不要・登録不要)でその場で動作を確認できます。

解決のポイント

添字は0から始まるため、要素が3個なら有効な添字は0〜2です。最後の要素はnums[-1]で安全に取得できます。ループではfor x in nums:のように直接回すと範囲外を気にせずに済みます。

よくある質問

要素があるか確認したい
if len(nums) > i: のように長さをチェックしてからアクセスします。
なぜ0から始まるの?
先頭からの「距離」で位置を表すためです。多くの言語が同じ仕様です。