0

假设我有一个发电机。是否有比我提供的示例更 Python 或更简单的方式来修改 gen 的值?

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 回答