1 生成器
- 定义:生成器是一种特殊的迭代器,它使用更简洁的语法来实现迭代功能,并且能够自动管理状态。生成器根据程序设计者制定的规则循环生成数据,当条件不成立时则生成数据结束。
- 优势:数据不是一次性全部生成出来,而是使用一个,再生成一个,可以节约大量的内存。
- 创建方式:①生成器推导式 ②yield关键字
2 生成器(类)推导式
# 创建生成器
my_generator=(i*2 for i in range(5))
print(my_generator)
# next()获取生成器下一个值
value=next(my_generator)
print(value)
# 遍历生成器
for value in my_generator:
print(value,end=' ')
3 yield关键字
yield 关键字生成器的特征:
- 在def函数中具有yield关键字
-
代码执行到 yield 会暂停,然后把结果返回出去,下次启动生成器会在暂停的位置继续往下执行
-
生成器如果把数据生成完成,再次获取生成器中的下一个数据会抛出一个StopIteration 异常,表示停止迭代异常
-
while 循环内部没有处理异常操作,需