yield」の使用例


「yield」は、関数を一時停止し、一時的な値を返すために使用されます。これにより、関数を再開すると、直前の状態から処理を継続することができます。以下に、いくつかのシンプルで簡単な「yield」の使用例を示します。

  1. ジェネレーター関数の作成:
def count_up_to(n):
    i = 0
    while i <= n:
        yield i
        i += 1
# ジェネレーターオブジェクトの生成
counter = count_up_to(5)
# ジェネレーターの要素を順に取得
for num in counter:
    print(num)

このコードでは、count_up_to()というジェネレーター関数を定義しています。この関数は、指定した数値 n までの数値を順に返します。yieldキーワードによって、関数の処理が一時停止し、呼び出し元に値が返されます。forループでジェネレーターの要素を取得し、表示しています。

  1. ジェネレーターを使ったデータのフィルタリング:
def filter_even_numbers(numbers):
    for num in numbers:
        if num % 2 == 0:
            yield num
# リストから偶数のみをフィルタリングする
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
filtered_numbers = filter_even_numbers(numbers)
# フィルタリングされた結果を表示
for num in filtered_numbers:
    print(num)

この例では、filter_even_numbers()というジェネレーター関数を使用して、与えられたリストから偶数のみをフィルタリングしています。「yield」キーワードを使用することで、関数は一時停止し、偶数のみが順に返されます。

以上が「yield」の使用例の一部です。ジェネレーターは、大量のデータを効率的に処理したり、イテレータブルなシーケンスを生成したりする場合に非常に役立ちます。ぜひ、これらのコード例を参考にしてみてください。