\

Pythonの yield は、ジェネレータ関数を定義する際に使用されるキーワードです。ジェネレータ関数は、イテレータを返す特殊な関数で、通常の関数とは異なり、呼び出されると処理を実行し、結果を返すと終了します。

しかし、 yield キーワードを使用することで、ジェネレータ関数はイテレータを作成し、値を逐次的に生成します。以下に、 yield を使用したジェネレータ関数の例を示します:

def count_up_to(n):
    i = 1
    while i <= n:
        yield i
        i += 1

# ジェネレータ関数を呼び出してイテレータを取得
iterator = count_up_to(5)

# イテレータから値を逐次的に取得
print(next(iterator))  # 1
print(next(iterator))  # 2
print(next(iterator))  # 3
print(next(iterator))  # 4
print(next(iterator))  # 5

# イテレータの末尾に到達するとStopIterationが発生する
# print(next(iterator))  # StopIterationエラー

このように、 yield は通常、forループと組み合わせて使用されます。以下がその具体例です。

def simple_generator():
    yield 1
    yield 2
    yield 3

for value in simple_generator():
    print(value)

上記のコードを実行すると、「1」「2」「3」が順番に出力されます。 simple_generator 関数はジェネレータ関数であり、 yield を使用して値をひとつずつ生成。forループはジェネレータから値を取得し、全ての値が取り出されるとループが終了します。

以上がPythonの yield とforループの基本的な使い方です。これらの概念を理解し、活用することで、より効率的なコードを書くことができます。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です