ジェネレーター gen があるとします。私が提供した例よりも、gen の値を変更するより Pythonic またはより単純な方法はありますか?
def genwrap(gen):
for value in gen:
yield(somefunc(value))
gen = somegenerator
for x in genwrap(gen):
print x
ジェネレーター gen があるとします。私が提供した例よりも、gen の値を変更するより Pythonic またはより単純な方法はありますか?
def genwrap(gen):
for value in gen:
yield(somefunc(value))
gen = somegenerator
for x in genwrap(gen):
print x
既に存在する関数を実際に適用している場合は、 を使用しますmap
。それ以外の場合、これは問題なく、十分に単純な場合はジェネレーター式に短縮できます (例: (x + 1 for x in somegenerator)
)。
def genwrap(gen):
return (somefunc(val) for val in gen)
yield
ステートメントでは括弧は必要ありません。
def genwrap(gen):
for value in gen:
yield somefunc(value)