【问题标题】:Collapse Generator in PythonPython 中的折叠生成器
【发布时间】:2015-02-02 15:53:56
【问题描述】:

所以我有这样的功能:

def demo_range(limit):
    value = 0
    while value < limit:
        yield value
        value = value + 1

还有这个

def demo_generator_to_list(generator):
    return [x for x in range(generator)]

现在在demo_generator_to_list(generator) 中,我需要填写一些代码来将生成器折叠到:

[0,1,2,3]

来自

demo_generator_to_list(demo_range(4))

【问题讨论】:

  • 不知道你在这里要求什么。或许您可以给我们描述一下预期的输出?
  • 我需要编写代码来形成一个生成器生成的结果列表
  • [x for x in range(generator)] 没有意义。你的意思是[x for x in generator]

标签: python python-2.7 generator


【解决方案1】:

只需将生成器传递给list() 调用:

def demo_generator_to_list(generator):
    return list(generator)

list() 函数将遍历生成器并将所有结果添加到新的列表对象中。

你仍然可以使用列表推导式,但你不能使用range()

return [x for x in generator]

这与使用list() 相比没有优势;它只是更慢。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-11
    • 2013-11-22
    • 2018-06-28
    • 1970-01-01
    • 2021-04-26
    • 2012-03-31
    • 2021-11-12
    • 1970-01-01
    相关资源
    最近更新 更多