迭代器和生成器

#迭代器

  #可迭代协议 ------ 含有iter方法的都是可迭代的

  #迭代器协议:含有next和iter的都是迭代器

  #特点:

      #节省内存空间

      #方便逐个取值,一个迭代器只能取一次

#生成器

  #生成器函数:

      #含有yield关键字的函数都是生成器函数

      #生成器的特点:

            #调用之后函数内的代码不执行,返回生成器

            #每次从生成器中取值都会执行一段代码,遇到yield停止

      #生成器取值的方式:

            #for : 如果没有break就一直取值,直到取完为止

            #next :每次只取一个

            #send :不能用在第一个,取下一个值得时候给上一个位置传一个新的值 (用send之前,前面必须要有next取过一次值,然后才能使用send取值)

            #数据的强制类型转换 :会一次性把所取到的值全部传到内存里(占内存,不建议使用)

      #生成器表达式

            # (条件成立想放在生成器中的值 for i in 可迭代的  if条件)

所有的生成器都是迭代器

原文地址:https://www.cnblogs.com/ITsqh/p/11151218.html