迭代器

本质:一个有next()方法的对象,而不是通过索引来计数。例如for循环需要下一项时,会调用next()方法获得它,条目全部取出后,会引发一个StopIteration异常,告诉调用者,迭代完成。

注意:不能回到开始,不能向后移动,也不能复制一个迭代器。如果要在此迭代一个对象,智能再次创建另一个迭代器对象。

另外,在迭代可变对象的时候,最好不要修改对象。比如迭代列表时,这个序列的迭代器只是记录你当前到达第几个元素,若此时改变元素,更新会立即反应到所迭代的条目上,从而发生危险。

创建方法:

iter(obj)

iter(func,sentinel) #重复调用func,直到迭代器的下个值等于sentinel

 

posted @ 2018-04-04 21:07  dreamer123  阅读(162)  评论(0编辑  收藏  举报