迭代器与生成器
Posted chenrongjin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了迭代器与生成器相关的知识,希望对你有一定的参考价值。
一、迭代器:
可迭代协议:可以被迭代要满足的要求就叫做可迭代协议。可迭代协议的定义非常简单,就是内部实现了__iter__方法。即可以被for循环的都是可迭代的,要想可迭代,内部必须有一个__iter__方法(‘__iter__‘ in dir(数据))。
迭代器协议:迭代器遵循迭代器协议:必须拥有__iter__方法和__next__方法。
所学可迭代的类型:字符串、列表、元组、字典、集合、f = open()、 range()、enumerate
|
迭代器的特点:
1、很方便使用,且只能取所有的数据取一次
2、节省内存空间
二、生成器
生成器函数:常规函数定义,但是,使用yield语句而不是return语句返回结果。yield语句一次返回一个结果,在每个结果中间,挂起函数的状态,以便下次重它离开的地方继续执行。
生成器表达式:类似于列表推导,但是,生成器返回按需产生结果的一个对象,而不是一次构建一个结果列表
生成器Generator:
本质:迭代器(所以自带了__iter__方法和__next__方法,不需要我们去实现)
特点:惰性运算,开发者自定义
|
以上是关于迭代器与生成器的主要内容,如果未能解决你的问题,请参考以下文章