イテレータ
イテレータは__next__メソッドを呼び出すことでデータを順に取り出すことができるオブジェクトである。pythonではイテラブルオブジェクトから作られ、よくfor文の制御に用いられる。
イテレータは__next__メソッドをもつ。
code:iterator01.py
it1 = iter(x)
print(type(it1))
print(it1.__next__()) # 最初の呼出し
print(it1.__next__()) # 次の呼出し
print(it1.__next__())
next関数【builtin】を使って__next__メソッドを呼び出すことができる。
code:iterator01.py
it2 = iter(x)
print(type(it2))
print(next(it2)) # 最初の呼出し
print(next(it2)) # 次の呼出し
print(next(it2)) # 最初の呼出し
ちなみに、次の動作を詳しく見てみると、
code:iterator00.py
for i in range(5):
1. のように書かれると、range関数【builtin】はrange型オブジェクトを返す。
2. for文のこの位置に置かれたrange型オブジェクトは自動的にイテレータに変換される。
3. そのうえで、for文のループに対して一つづつ値を返す。
というように動作している。
整理: