迭代器 生成器

迭代器:

  可迭代对象:实现了__iter()__ 方法的对象。

  迭代器协议: 必须满足一个next()方法,执行该方法要么返回迭代中的下一项,要么抛出StopIteration 异常。终止迭代。

  迭代器:        是一个满足了迭代协议的容器对象,

         迭代器有两个方法 -next() 返回容器中的下一项

                  -iter()   返回迭代器本身。参数是可迭代对象。

        迭代器的优势以及使用场景:

                -- 构建迭代器的时候,不是将所有的元素一次性加载在内存中,而是等待调用next() 方法时返回下一个元素,不需要考虑内存的问题。

                -- 用于数据非常多的情况。

 

  生成器:  生成器是一种特殊的迭代器。 

        他有两种表达方式:1 -- 生成器表达式    (i for i in range(100))  和列表表达式不同,最外面时一个圆括号。返回值是生成器对象。 

                    2 -- 生成器函数  函数用关键字 yield 返回值,而不是 return 返回。

                          yield 语句一次返回一个结果,中断函数,并在每个结果中间挂起函数的状态,以便下次从他离开的地方继续执行。

                  

  

posted @ 2019-07-22 01:10  Yangimb  阅读(49)  评论(0)    收藏  举报