イタレブル
要素を1つずつ返すようなオブジェクトのふるまいをイタレブルとよぶ。そのようなオブジェクトをイタレブルオブジェクトという。リストやタプルなど全てのシーケンス型
Python の for 文は foreach 文である。イタレブルなオブジェクトが返す値の終端まで処理を繰り返すように動作する。
リストはイタレブルオブジェクトである。for文のもっとも基本的な使い方はリストを与えることである。この場合、ループの回数が大きい場合には、プログラムが書きづらく、また、無駄なメモリを利用することがわかる。
code:python
for i in 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20:
print(i)
そこで、rangeオブジェクトのようなイタレブルオブジェクトを利用する。これは、呼び出される度に値を生成するため、リストで与える場合と異なり、メモリ上に全ての要素を保持する必要が無い。
code:python
foe i in range(100):
print(i)
次のようにすると、rangeオブジェクトが生成する全ての値を取り出し、リスト化することができる。
code:python
iter1 = range(10)
print(iter1)
# range(0, 10)
iter2 = list(iter1)
print(iter2)
# 0, 1, 2, 3, 4, 5, 6, 7, 8, 9