.net column
.NET開発者のためのブログメディア

[Python]list index out of rangeの原因とその対処方法|ソースコードを交えて詳しく解説!

公開日時:   更新日時:
[Python]list index out of rangeの原因とその対処方法|ソースコードを交えて詳しく解説!
基本情報技術者試験の試験対策はこちら>>

SE
list index out of rangeの対処方法を教えてください。

PM
list index out of rangeの対処方法を原因も合わせて紹介します。

[Python]list index out of rangeの原因とその対処方法


今回は、Pythonでの「list index out of range」の原因とその対策について紹介します。
listに対して範囲外のインデックスにアクセスすると、「list index out of range」例外が発生します。その対処方法について、ソースコードを交えて紹介します。

興味のある方はぜひご覧ください。

原因

「list index out of range」を発生させてみます。実際のソースコードを見てみましょう。

実行結果は以下のようになります。

範囲外にアクセスしているので、IndexErrorが発生します。

以下のようなコーディングミスも良くあります。

実行結果は以下のようになります。配列の最終要素はmylist[len(mylist)]ではなくmylist[len(mylist)-1]なので、IndexErrorが発生します。

対処

「list index out of range」の対処方法を紹介します。実際のソースコードを見てみましょう。

実行結果は以下のようになります。

rangeを使ったり、for inでアクセスすることで、IndexErrorが発生しません。

配列の結合

「list index out of range」の事例を紹介します。配列を結合したいケースです。実際のソースコードを見てみましょう。

実行結果は以下のようになります。appendでIndexErrorが発生します。append(y[i])と記述すると、y[6]、y[7]…となります。そのため、IndexErrorとなります。

この場合、以下のように対処します。

実行結果は以下のようになります。間違えやすいので注意してください。

無視

「list index out of range」を無視する方法を紹介します。実際のソースコードを見てみましょう。

実行結果は以下のようになります。3つめの要素がないものもあるので、IndexErrorが発生します。

この場合、以下のように対処します。

実行結果は以下のようになります。

lengthを確認して表示しています。

以下のような対処方法もあります。空タプルか否かをチェックしています。

実行結果は以下のようになります。

例外処理を利用する方法もあります。

実行結果は以下のようになります。

配列を辞書に格納

2次元配列を辞書に格納する方法を紹介します。実際のソースコードを見てみましょう。

実行結果は以下のようになります。

要素が存在しない場合は、空文字が格納されることが分かります。

SE
Pythonでのlist index out of rangeの原因と対処方法がわかりました。

PM
これを参考に理解を深め、実際にコードを書いてマスターしましょう。

まとめ

いかがでしたでしょうか。Pythonでの「list index out of range」の原因とその対策について紹介しました。
意図せず「list index out of range」に遭遇することはよくあります。デバッグして原因を突き止めることは、最初は困難かもしれませんが、徐々に慣れていくでしょう。

ぜひご自身でソースコードを書いて、理解を深めてください。


.NET分野でのキャリアアップをお考えの方は、現在募集中の求人情報をご覧ください。

また、直接のエントリーも受け付けております。

エントリー(応募フォーム)

Search

Popular

reccomended

Categories

Tags