文章

Python yield生成器

有限的生成器可以通过将它们作为参数传递给 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']
原文来自:Python yield生成器,尊重自己,尊重每一个人;转发请注明来源!
0 0

发表评论