本文共 1367 字,大约阅读时间需要 4 分钟。
生成器
1. 生成器概述
在编程中,生成器是一种非常有用的工具。它允许我们在迭代过程中按需生成数据,而无需一次性生成所有数据。这对于处理大数据量或需要延迟处理的任务尤为重要。生成器在Python中通过生成器表达式(generator expressions)或函数返回生成器对象来实现。
2. 创建生成器的方法
创建生成器有两种主要方式:
L = [x * 2 for x in range(5)]
G = (x * 2 for x in range(5))
这里,L 是一个列表,而 G 是一个生成器。生成器可以通过多种方式使用,如 next() 函数、for 循环或 list() 方法。
next(G) # 输出 2 next(G) # 输出 4 next(G) # 输出 6 next(G) # 输出 8
G = (x * 2 for x in range(5))
for x in G: print(x)
输出结果为:02468
3. 使用生成器函数
生成器函数是通过函数定义返回一个生成器对象的。例如,下面的函数 gen() 会返回一个生成器对象:
def gen():i = 0while i < 5: temp = yield i print(temp) i += 1
next(f) # 输出 0 f.send('haha') # 输出 haha next(f) # 输出 None f.send('haha') # 输出 haha
f.next() # 输出 0 f.next() # 输出 None f.next() # 输出 None f.next() # 输出 None f.next() # 抛出 StopIteration 异常
4. 进阶案例
以下是一个更复杂的生成器示例,展示了生成器在处理斐波那契数列中的应用:
def fib(n):current = 0num1, num2 = 0, 1while current < n: yield num1 num1, num2 = num2, num1 + num2 current += 1return 'done'
for num in f: print(num)
输出:0 1 1 2 3
转载地址:http://vtavz.baihongyu.com/