day14 迭代器和生成器

迭代器和生成器
迭代器
可迭代协议 ---- 含有iter方法的都是可迭代的
迭代器协议 ---- 含有next和iter的都是迭代器
特点
节省空间
方便逐个取值,一个迭代器只能取一次.
生成器
生成器函数
含有yield关键字的函数都是生成器函数
生成器函数的特点
调用之后函数内的代码不执行,返回生成器
每从生成器取一个值就会执行一段代码,遇见yield就停止
如何从生成器取值:
for: 如果没有break会一直取,直到取完
next:每次只取一个
send:不能用在第一个,取下一个值的时候给上一个位置传一个新的值
数据类型强制转换: 会一次性把所有数据都读到内存里
生成器表达式
(条件成立想放在生成器中的值 for i in 可迭代的 if 条件)
原文地址:https://www.cnblogs.com/77-is-here/p/10549525.html