是否有一种普遍接受的pythonic语法来修改生成器的值?

时间:2013-11-01 22:47:16

标签: python

假设我有一个发电机组。与我提供的例子相比,是否有更多的pythonic或更简单的修改gen值的方法?

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

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

3 个答案:

答案 0 :(得分:4)

如果它实际上正在应用已存在的函数,请使用map。否则,这很好,如果它足够简单(例如(x + 1 for x in somegenerator)),可以缩短为生成器表达式。

答案 1 :(得分:1)

def genwrap(gen):
  return (somefunc(val) for val in gen)

答案 2 :(得分:0)

yield声明中不需要括号:

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