Python:生成器
什么是生成器?
一边循环一边计算的机制,我们称之为生成器 它也是一种特殊的迭代器
创建生成器的两种方式:
1. 把列表推导式的[]换成()
nums = [x for x in range(5)] print(type(nums)) print(nums) nums2 = (x for x in range(5)) print(type(nums2)) print(nums2)
2. 在函数中定义yield关键字,那么此时这个函数就不再是一个函数,而是一个生成器
def fib_generator(): num1 = 1 num2 = 1 while True: temp_num = num1 num1, num2 = num2, num1+num2 # return temp_num # 方式1代码 yield temp_num # 方式2代码(可以生成斐波那契数列) fib = fib_generator() print(next(fib)) print(next(fib)) print(next(fib)) print(next(fib))
yield的作用是把生成器挂起,并把yield后面的值返回
而next()方法是为了唤醒生成器,并获取函数中yield返回的值

浙公网安备 33010602011771号