创建生成器的方法是使用yield关键字,将yield后面的表达式作为生成器的元素返回,例子如下:
def my_generator():
yield 1
yield 2
yield 3
生成器有两个主要的应用场景:
生成大量数据:当你需要生成大量数据但又不希望一次性将所有数据生成并存储在内存中时,可以使用生成器。在这种情况下,你可以使用yield语句来逐个生成数据。
迭代:生成器还可以用于迭代,因为生成器可以像列表一样生成新的元素。这意味着你可以使用for循环等迭代方法来处理生成器生成的元素。
下面是一个使用生成器的例子来生成前n个斐波那契数列的代码:
def fibonacci(n):
a, b = 0, 1
for i in range(n):
yield a
a, b = b, a + b
for num in fibonacci(10):
print(num)
输出结果:
0
1
1
2
3
5
8
13
21
34