有限的生成器可以通过将它们作为参数传递给 list 函数来转换成列表。
def numbers(x):
for i in range(x):
if i % 2 == 0:
yield i
print(list(numbers(11)))
结果:
[0, 2, 4, 6, 8, 10]
使用生成器可以提高性能,这是懒惰(按需)生成值的结果,这意味着更低的内存使用率。而且,在开始使用之前,我们不需要等到所有的元素都被生成。
def make_word():
word = ""
for ch in "spam":
word +=ch
yield word
print(list(make_word()))
结果:['s', 'sp', 'spa', 'spam']