今回はiterator(イテレータ)とgenerator(ジェネレータ)について。
★iteratorとは
wikipediaではiteratortとは、
プログラミング言語において配列やそれに類似するデータ 構造の各要素に対する繰返し処理の抽象化のことだそうです。
実際のところ、リストや文字列などの要素を1つずつ繰り返し抽出する機能のようです。
※表現が間違っていたらすみません。
★iteratorのサンプル
下記2つのサンプルは同じことをやっています。
※pythonのバージョンは2.7
d = [1,2,3,4]
#for文を使う
for i in d:
print i
#iter関数を使う
it = iter(d)
next(i) #1
next(i) #2
・・・
★iteratorのメカニズム
python.jpのチュートリアルに記載されているとおり、
for
文はコンテナオブジェクトのiter関数を呼び出し、next関数で定義されたイテレータオブジェクト(抽出したデータ)を返します。★generatorとは
python.jpのチュートリアルでは、generatorを
イテレータを作成するための簡潔で強力なツールと説明されています。
メカニズムについても明記されているので、ちゃんと理解すればかなり使えるでしょう。
こういったツールがpythonらしいのかもしれませんね。