0803学习日志迭代器

1 什么是迭代器

  迭代器是一种迭代取值的工具

  迭代是一种重复的过程,每次重复都是基于上一次的结果而来

2 为什么要使用迭代器

  迭代器是一种不依赖索引取值的工具

  1 可迭代对象,但凡内置有__iter__方法的对象都是可迭代对象

  2 可迭代对象有:str list dict tuple 文件对象

  执行可迭代器对象下的__iter__方法,返回值得到的对象就是迭代器对象

迭代器对象:

  既内置有__iter__方法的,执行__iter__方法得到的就是迭代器对象本身

  又内置有__next__方法的,执行__next__方法可以不依赖索引取值

注意:

  1 迭代器对象本身就是可迭代对象,可迭代对象不一定是迭代器对象

  2 文件对象本身就是一个迭代器对象

  3 同一个迭代器对象只能完整的取完一次值

for 循环的本质就是一个迭代器

  for 循环的工作原理:

  1 调用in后面的__iter__的方法将in后面的值变成迭代器

  2 再调用生成迭代器对象的__next__方法,循环取值,将值赋给in前面的i

  3 再循环结束时,迭代器会抛出异常,for循环会自动的处理异常,使循环结束

注意:

  从for循环的角度,但凡可以被for循环循环取值的对象都是可迭代对象

3 迭代器对象总结

  优点:

    1 迭代器对象提供了一种可以不依赖索引取值的方式

    2 每次循环都只取一个值,这使得内存中只有一个值,不占用内存空间

  缺点:

    1 不能取到指定的值

    2 无法估计迭代器对象的长度

原文地址:https://www.cnblogs.com/jianhaozhou/p/9440644.html