小说python2和python3的差异一文中,
在说明range,xrange,map的差异时
提到Iterable和Iterator,有朋友反馈没留意过这两个东东,
这里就小说一把,认识一下
Iterable...官方说明
被next()函数调用并不断返回下一个值的对象
本质上是实现了__iter__,__next__方法(python2是__iter__,next方法)
相互关系:
?...call by need的方式
不是与list等集合数据类型一样一次性将所有元素加载到内存中
它还具备下面几个特点:
不能向后移动
不能回到开始
只能一次迭代
不能切片和索引
?...适用场景:
不关心元素的随机访问
元素的个数不确定
后记
迭代器在python中是个很重要的对象,很多对象都具有迭代器的特性,或是其子对象
生成器是迭代器的一个重要子对象
而python的协程与生成器又有千丝万缕的关系...迭代器->生成器->协程层层递进
迭代器作为一个基础,清楚的认知是很有必要的----