Pythonでは、2つのジェネレータを結合するためのいくつかの方法があります。ここでは、その中でも一般的に使用される2つの方法を紹介します。

方法1: itertools.chain

itertools.chain関数は、複数のジェネレータを一つに結合します。以下にその使用例を示します。

import itertools

gen1 = (x for x in range(5))
gen2 = (x for x in range(5, 10))

for i in itertools.chain(gen1, gen2):
    print(i)

このコードは、0から9までの数字を順に出力します。

方法2: yield from

Python 3.3以降では、yield from文を使用して、一つのジェネレータから別のジェネレータへ制御を委譲することができます。以下にその使用例を示します。

def chain_generators(gen1, gen2):
    yield from gen1
    yield from gen2

gen1 = (x for x in range(5))
gen2 = (x for x in range(5, 10))

for i in chain_generators(gen1, gen2):
    print(i)

このコードも、0から9までの数字を順に出力します。

これらの方法を使えば、Pythonで2つのジェネレータを簡単に結合することができます。

投稿者 admin

コメントを残す

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