ジェネレータ
イテラブルオブジェクトの一種である。取り出される値を常に実体として保持しておらず、取り出されるタイミングで生成するという特徴を持つ。 FOR文における利用
rangeオブジェクトはFOR文の制御のためによく用いられるジェネレータである。下の例でrangeオブジェクトはリスト型オブジェクトのように 0, 1, 2,..., 9 の値を常に保持してはおらず、ループの度に値を生成し、FOR文に渡している。 code:generator1.py
for n in range(10):
print(n)
全要素の取得
ジェネレータはリスト型やタプル型にキャスト(型変換)することができる。
code:generator2.py
gen = range(0, 10, 2) # 初項0, 公差2の等差数列を10項分だけ生成する
print(gen) # ジェネレータは中身を直接確認できず、オブジェクトの概要のみが表示される
x = list(gen) # リストにキャスト
print(x) # リストは全要素を保持している