「yield」は、関数を一時停止し、一時的な値を返すために使用されます。これにより、関数を再開すると、直前の状態から処理を継続することができます。以下に、いくつかのシンプルで簡単な「yield」の使用例を示します。
- ジェネレーター関数の作成:
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
ループでジェネレーターの要素を取得し、表示しています。
- ジェネレーターを使ったデータのフィルタリング:
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」の使用例の一部です。ジェネレーターは、大量のデータを効率的に処理したり、イテレータブルなシーケンスを生成したりする場合に非常に役立ちます。ぜひ、これらのコード例を参考にしてみてください。