Pythonの反復可能オブジェクトとイテレータ
Pythonの反復可能オブジェクト(iterable)とイテレータ(iterator)について整理します。
反復可能オブジェクトとイテレータ
Pythonの用語集(3.7.4)を基にこのように整理しました。
反復可能オブジェクト
リスト、タプル、文字列といった全てのシーケンス型など、要素を1つずつ返せるオブジェクト。
iter()に渡すと、そのオブジェクトのイテレータを返す。
ただし、例えばfor文はiter()を自動で呼ぶため、通常、自分でiter()を呼ぶことはない。
イテレータ
next()メソッドを繰り返し呼ぶ(又は、next()に渡す)ことで、要素を順番に返すオブジェクト。
返すオブジェクトがなくなると、例外(StopIteration)を投げる。
おわりに
反復可能オブジェクトとイテレータについて整理しました。
英語にするとそれぞれ「iterable」と「iterator」です。
似ていますが、両者は異なりますので注意して下さい。
この記事が気に入ったらサポートをしてみませんか?