Pythonのジェネレータ関数の使い方


キーワードを使用しますが、関数内で値をyieldキーワードで返します。yieldキーワードは、値を返すだけでなく、関数の状態を保持し、次に呼び出されたときに処理を再開する機能も持っています。これにより、ジェネレータ関数はイテレーションのたびに値を生成することができます。

以下に、ジェネレータ関数の使い方とコード例をいくつか示します。

def count_up(start, end):
    current = start
    while current <= end:
        yield current
        current += 1
# ジェネレータ関数を使用して数を生成する
counter = count_up(1, 5)
for num in counter:
    print(num)

上記の例では、count_upという名前のジェネレータ関数を定義しています。この関数は、startからendまでの数値を生成します。yieldキーワードにより、関数は数値を返し、その状態を保持します。forループを使用して、ジェネレータ関数から生成された数値を順番に取得し、表示しています。

ジェネレータ関数は、大量のデータをメモリに一度に読み込まずに処理する場合や、逐次的なデータ生成が必要な場合に特に有用です。例えば、巨大なファイルの行を一度にメモリに読み込む代わりに、ジェネレータ関数を使用して行を逐次的に生成することができます。

ジェネレータ関数は、Pythonプログラミングにおいて非常に便利なツールであり、効率的なデータ処理やイテレーションを実現するために活用されています。