StopIteration
Pythonでイテレータが終了した際に発生する例外
概要
StopIteration は、イテレータの next() を呼び出した際に、これ以上要素がない場合に発生する例外です。通常はforループが自動的に処理しますが、手動でnext()を使う場合は注意が必要です。
エラーメッセージ
StopIteration
RuntimeError: generator raised StopIteration
原因
1. next()でイテレータを使い切った
| |
2. 空のイテレータでnext()を呼び出し
| |
3. ジェネレータ内でStopIterationをキャッチしない(Python 3.7+)
| |
解決策
1. デフォルト値を指定
| |
2. forループを使用
| |
3. try-exceptで処理
| |
4. ジェネレータでの正しい処理(Python 3.7+)
| |
5. itertools.chain を使用
| |
Python 3.7以降の変更
Python 3.7以降、ジェネレータ内でStopIterationが発生するとRuntimeErrorに変換されます。
| |
関連エラー
関連エラー
Python の他のエラー
この記事は役に立ちましたか?