【问题标题】:How to return generator outputs [duplicate]如何返回生成器输出[重复]
【发布时间】:2019-04-13 14:45:18
【问题描述】:

我想弄清楚如何返回生成器输出。我知道next(generator) 返回函数的产生输出,但我想知道如何返回多个产生的输出。

例如:

alist = [1,2,3,4,5,6]
def aiterator():
    for i in alist:
        yield i+1

generator = aiterator()

我知道next(generator) 会返回 1,但是如何在不输入 next(generator) 两次或三次的情况下返回 2,3,或者如果我愿意,返回 2,3,4?

具体来说,我正在考虑另一个函数,它将返回next(generator)s 的数量:

for i in aiterator():
  return ?

【问题讨论】:

  • generator 总是在下一个刻度一个一个地返回每个产量,所以如果你想要不同的输出,那么你需要改变产量值。

标签: python-3.x generator


【解决方案1】:

如果要一个一个输出整个列表,使用:

while True:
  next(generator)

如果您想要更多自定义输出,则如其中一个 cmets 所述,更改 yield 值。

【讨论】:

  • 生成器耗尽后,while 循环将因StopIteration 错误而中断。
猜你喜欢
  • 1970-01-01
  • 2016-04-20
  • 1970-01-01
  • 2016-10-06
  • 1970-01-01
  • 2014-10-10
  • 2021-04-06
  • 2018-08-01
  • 2017-09-20
相关资源
最近更新 更多