0

ジェネレーター gen があるとします。私が提供した例よりも、gen の値を変更するより Pythonic またはより単純な方法はありますか?

def genwrap(gen):
  for value in gen:
    yield(somefunc(value))

gen = somegenerator
for x in genwrap(gen):
  print x
4

3 に答える 3

4

既に存在する関数を実際に適用している場合は、 を使用しますmap。それ以外の場合、これは問題なく、十分に単純な場合はジェネレーター式に短縮できます (例: (x + 1 for x in somegenerator))。

于 2013-11-01T22:50:15.070 に答える
1
def genwrap(gen):
  return (somefunc(val) for val in gen)
于 2013-11-01T22:49:50.130 に答える
0

yieldステートメントでは括弧は必要ありません。

def genwrap(gen):
    for value in gen:
        yield somefunc(value)
于 2013-11-01T22:51:05.510 に答える