まず、イールド(yield)はPythonの関数で使用される特殊なキーワードです。イールドを使うことで、関数はジェネレータとして振る舞い、複数の値を順番に返すことができます。これはメモリ効率が良く、大きなデータセットに対しても効果的です。
では、フィボナッチ数列を生成するためにイールドを使ってみましょう。フィボナッチ数列は、前の2つの数の和が次の数になるような数列です。
def fibonacci():
a, b = 0, 1
while True:
yield a
a, b = b, a + b
# フィボナッチ数列の最初の10個を表示する例
fib = fibonacci()
for _ in range(10):
print(next(fib))
このコードでは、fibonacci
というジェネレータ関数を定義しています。関数内部では、変数a
とb
を用いてフィボナッチ数列を生成しています。yield a
の部分で現在の数を返し、次のループで新しい数を計算します。
このようにして、next
関数を使ってジェネレータから次々と値を取得できます。上記のコードでは、最初の10個のフィボナッチ数を表示しています。
イールドを使うことで、フィボナッチ数列を簡潔かつ効率的に生成することができました。
以上が、イールドの使用とフィボナッチ数列の生成方法についての説明です。この方法を使えば、他の数列や複雑なアルゴリズムにも応用できるかもしれません。ぜひ試してみてください!