Pythonの反復可能オブジェクトとイテレータ

Pythonの反復可能オブジェクト(iterable)とイテレータ(iterator)について整理します。

反復可能オブジェクトとイテレータ

Pythonの用語集(3.7.4)を基にこのように整理しました。

反復可能オブジェクト

  • リスト、タプル、文字列といった全てのシーケンス型など、要素を1つずつ返せるオブジェクト。

  • iter()に渡すと、そのオブジェクトのイテレータを返す。

  • ただし、例えばfor文はiter()を自動で呼ぶため、通常、自分でiter()を呼ぶことはない。

イテレータ

  • next()メソッドを繰り返し呼ぶ(又は、next()に渡す)ことで、要素を順番に返すオブジェクト。

  • 返すオブジェクトがなくなると、例外(StopIteration)を投げる。

おわりに

反復可能オブジェクトとイテレータについて整理しました。
英語にするとそれぞれ「iterable」と「iterator」です。
似ていますが、両者は異なりますので注意して下さい。

この記事が気に入ったらサポートをしてみませんか?