IndexError: list index out of range

Python
本ページはプロモーションが含まれています

はじめに

今回はリストの操作で恐らく一番多いであろうエラーについてです。
pythonでリストを使っている時にエラーが出たのでそれについてのメモです。

エラー

↓はエラーが発生する簡単なサンプルソースになります。

l = ["0", "1", "2", "3", "4"]
print(len(l))
print(l)


# リストの範囲外を指定
print(l[10])
このプログラムを実行すると
5
['0', '1', '2', '3', '4']
4
['0', '1', '3', '4']
Traceback (most recent call last):
  File "/Users/****/programing/idx_error.py", line 7, in <module>
    print(l[10])
IndexError: list index out of range

とエラーになります。

エラーメッセージ「IndexError: list index out of range」を訳すと、

「リストの要素の範囲外です」と言っています。

原因&対処方法

リストの範囲外のインデックスを指定していることが原因です。
インデックス内の要素を指定する必要があります。

今回はサンプルなので原因がわかりやすいと思います。
ですが、複雑なソースでこれを行うと分かりにくいかと。
例えば、ループ処理などでリスト操作をするなど(ループでインデックス外の要素をアクセスしてプログラムが落ちるなんかはよく起きます)

pythonはインデックスが0から始まるので、len()を使う場合は-1しないと行けないので注意してください。

さいごに

今回はpythonのリストでインデックス外にアクセスすることで起きたエラーについてです。
このエラーはよく見ると思うので是非原因を知っておくようにしたいですね。

この記事がお役に立ったのならば嬉しいです。
最後までお読みいただきありがとうございました。

タイトルとURLをコピーしました