1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Python】ジェネレーターをシンプルに理解する

Posted at

#ジェネレーターとは
「何らかの値を連続的に生成する」反復可能なオブジェクトであり、ジェネレーター関数を用いて定義する。
ジェネレーターはリストやタプルなどと同様に、反復処理に利用できる(ジェネレーター関数の実際の戻り値は反復可能な「ジェネレーター」オブジェクトになる。

#単純なジェネレーター
「引数に指定された値未満の整数列を返す」反復可能オブジェクトを返す。
まずgen関数の出力が先行し、yieldで返された値が呼び出し元のcntに渡され、print(cnt)される。
通常のforループなら呼び出し元に戻るまでにループし尽くすが、yieldすることで一旦戻っている。

#サンプルプログラム

Sample.py
def gen(n):
    for num in range(n):
        print("generated")
        yield num

for cnt in gen(10):
    print(cnt)

#出力結果

generated
0
generated
1
generated
2
generated
3
generated
4
generated
5
generated
6
generated
7
generated
8
generated
9
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?