迭代器 ,可迭代对象 ,迭代器对象,for循环的本质

迭代器
迭代:更新换代(重复)的过程,每次的迭代都必须基于上一次的结果
迭代器:迭代取值的工具

迭代器给你提供了一种不依赖于索引取值的方式

需要迭代取值的数据类型有:字符串 列表 元祖 字典 集合

 

可迭代对象 :只有内置有__iter__方法的都叫做可迭代对象

基本数据类型中 是可迭代对象的有:str list tuple dict set  文件对象(执行内置的__iter__之后还是本身 没有变化):文件对象本身就是迭代器对象

迭代器对象
1.内置有__iter__方法
2.内置有__next__方法

ps:迭代器一定是可迭代对象  二可迭代对象不一定是迭代器对象

迭代器对象无论执行多少次__iter__方法的到的还是迭代器对象本身

迭代器取值的特点 只能往后依次取,不能后退

 

 

for循环的本质

for循环内部的本质 

1 讲in后面的对象调用__iter__转换成迭代器对象

2 调用__iter__迭代取值

3 内部有异常捕获StopIteration,当__next__报错 自动结束循环

 

可迭代对象:内置有__iter__方法的

迭代器对象:既内置有__iter__也内置有__next__方法

迭代取值:

  优点:1不依赖于索引取值

    2 内存中永远只占一份空间,不会导致内存溢出

  缺点:1 不能够获取指定的元素

    2取玩之后会报StopIteration错

 

posted @ 2019-07-15 17:27  小肥海  阅读(295)  评论(0编辑  收藏  举报