Python ERROR
Python IndexError: list index out of range の解決法
リストの存在しない位置を参照したときに出るエラーです。要素数と添字の関係を理解すれば防げます。
このエラーメッセージ
IndexError: list index out of range
原因
- 要素数より大きい添字(インデックス)を指定している
- 添字は0から始まることを忘れている
- 空のリストにアクセスしている
❌ エラーになるコード
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から始まるの?
先頭からの「距離」で位置を表すためです。多くの言語が同じ仕様です。