所以我有这样的功能:
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))
答案 0 :(得分:2)
只需将生成器传递给list()
来电:
def demo_generator_to_list(generator):
return list(generator)
list()
函数将迭代生成器并将所有结果添加到新的列表对象。
你仍然可以使用列表理解,但是你不能使用range()
:
return [x for x in generator]
这比使用list()
没有优势;它只是慢了。