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

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

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

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

反復可能オブジェクトイテレータ
  • リスト、タプル、文字列といった全てのシーケンス型など、要素を1つずつ返せるオブジェクト。
  • iter()に渡すと、そのオブジェクトのイテレータを返す。
  • ただし、例えばfor文はiter()を自動で呼ぶため、通常、自分でiter()を呼ぶことはない
  • __next__()メソッドを繰り返し呼ぶ(又は、next()に渡す)ことで、要素を順番に返すオブジェクト
  • 返すオブジェクトがなくなると、例外(StopIteration)を投げる。

おわりに

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


YouTube: ミサキさん

問い合わせ先
Mail: caprico.aries@gmail.com
Twitter: https://twitter.com/caprico_aries(無言フォローもお気軽に)

コメント

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