※このページではアフィリエイト広告を利用しています

【Python入門】Pythonと制御構文-IteratorとGeneratorを用いた使用方法-

Python

Pythonのfor構文には、Iterator(イテレータ)という側面があります。このIteratorを作成する仕組みをGeneratorと言います。ここでは、IteratorとGeneratorについて、サンプルコードを用いて説明しています。

スポンサーリンク
スポンサーリンク

Iteratorとは

IteratorとはList型などの値を1つずつ取り出す仕組みのことです。iter()関数とnext()関数を用いることで、値を1つずつ取り出すことができます。

Iteratorを用いた使用例

#Iteratorを用いた使用例
>>> test = [55,70,90]
>>> i = iter(nums)
>>> next(i)
55
>>> next(i)
70
>>> next(i)
90

REPLで上記のように動かすと1つずつ取り出せます。全ての値を取り出して「next(i)」とすると、「StopIteration」というエラーになります。

Generatorとは

GeneratorとはIteratorを作成する仕組みのことです。yield文を使用することでGeneratorを作成することが可能です。yield文は関数内の状態をすべて保存して、再び、関数が呼ばれると保存した直後の値から処理を実行します。

Generatorを用いた使用例

#Generatorを用いた使用例
def get_num():
 i = 1
 while i <= 20:
  yield i
  i += 2

iter_num = get_num()
for get_range in iter_num:
 print(get_range,end=",")
#出力結果は「1,3,5,7,9,11,13,15,17,19,」です。

上記のプログラムは20以下の素数を返す「Iterator」「Generator」となっています。

繰り返し処理を用いるとき「Iterator」「Generator」の考え方を理解しておくと効率の良いプログラムを意識できます。

タイトルとURLをコピーしました