迭代器

   先来看看怎么创建迭代器(字符串,列表或元组对象都可用于创建迭代器,文章中只展示列表的迭代器创建):

   

   可以看到,iter()方法用来创建迭代器,next()方法用来逐项遍历对象中的元素,且从第一项开始,直到遍历不到元素为止(不能反复,如果想重新遍历,只能重复步骤).

   那么,如果遍历不到元素,迭代器会怎么工作呢?

   

   继续执行:

   

   会发现,代码执行出现错误,提示StopIteration(停止迭代),此时迭代也随之停止。是不是有那么一瞬间觉得似曾相识,对了,for循环(迭代器当然也可以使用for循环来遍历内部元素)!

   整套迭代器的运行机制和for循环如出一辙,下面我用一段代码来展示for循环内部的运行流程吧。

   

   使用while循环作为手段,来遍历列表中的元素,当遍历为空时,抛出异常(StopIteration),执行break,退出程序。

   结合以上介绍,来总结一下迭代器的特点吧。

   * 节省内存,只能一行一行的拿出元素,节约了遍历不需要的值所需要的内存空间(迭代器中体现的不是很明显)。

   * 惰性机制,只有在访问它时,才会返回值。

   * 只能由上至下取值,不能反复。

   简要的概括介绍了下迭代器,作为python中功能很强大的一种访问对象内部元素的方法,需要好好把握其精髓,对于后面高阶内容的学习也会很有帮助。

 

posted on 2018-12-12 20:15  地球上的小东西  阅读(124)  评论(0编辑  收藏  举报