GeeksforGeeksでyieldの使用例とその分析


まず、yield文の基本的な構文を確認しましょう。以下は、yield文を使用した簡単な関数の例です。

def count_up_to(n):
    i = 1
    while i <= n:
        yield i
        i += 1
# ジェネレータオブジェクトを作成
generator = count_up_to(5)
# ジェネレータオブジェクトから値を取得
print(next(generator))  # 出力: 1
print(next(generator))  # 出力: 2
print(next(generator))  # 出力: 3
print(next(generator))  # 出力: 4
print(next(generator))  # 出力: 5

上記の例では、count_up_toというジェネレータ関数を定義し、yield文を使用して値を返しています。この関数を呼び出すと、ジェネレータオブジェクトが返されます。next関数を使用してジェネレータオブジェクトから値を順番に取得できます。

次に、GeeksforGeeksでよく使用されるyield文の例をいくつか紹介します。

  1. ファイルの行を読み込む関数:
def read_lines(file_path):
    with open(file_path, 'r') as file:
        for line in file:
            yield line.strip()
# ファイルの内容を取得
lines_generator = read_lines('sample.txt')
# ファイルの各行を表示
for line in lines_generator:
    print(line)
  1. 無限のフィボナッチ数列を生成する関数:
def fibonacci():
    a, b = 0, 1
    while True:
        yield a
        a, b = b, a + b
# フィボナッチ数列の最初の10個の値を表示
fib_generator = fibonacci()
for _ in range(10):
    print(next(fib_generator))

これらの例では、yield文を使用してジェネレータ関数から値を返しています。ジェネレータ関数は、大きなデータセットを効率的に処理するためにも役立ちます。

以上が、GeeksforGeeksでyield文を使用した例とその分析の紹介です。このシンプルな方法を使って、さまざまなタスクを効果的に解決することができます。ぜひ、実際にコードを試してみてください!