专栏名称: Python开发者
人生苦短,我用 Python。伯乐在线旗下账号「Python开发者」分享 Python 相关的技术文章、工具资源、精选课程、热点资讯等。
目录
相关文章推荐
Python爱好者社区  ·  月薪3万35岁脑干出血程序员:ICU躺了28 ... ·  昨天  
Python爱好者社区  ·  务必立即拿下软考证(政策红利) ·  2 天前  
Python爱好者社区  ·  软考,yyds ·  昨天  
Python爱好者社区  ·  Science披露:近3年,垃圾论文激增,9 ... ·  2 天前  
51好读  ›  专栏  ›  Python开发者

Python 黑魔法:迭代器

Python开发者  · 公众号  · Python  · 2017-02-22 21:10

正文

请到「今天看啥」查看全文


: it . next ()

Out [ 7 ] : 3

In [ 8 ] : it . next ()

Out [ 8 ] : 4

In [ 9 ] : it . next ()

---------------------------------------------------------------------------

StopIteration Traceback ( most recent call last )

ipython - input - 16 - 54f0920595b2 > in module > ()

----> 1 it . next ()

StopIteration :

In [ 10 ] :


这样做有什么用呢?试想想在迭代指针还没指到的当前元素时候,已经迭代之后的位置元素,那些元素需要计算么?因为只有迭代到当前位置的元素时候,才开始计算元素的值。在迭代之前可以不存在,在迭代之后可以被销毁。实现的迭代器不需要准备所遍历的所有元素,没错,这就是迭代器的一大魅力,惰性计算。


for 循环


知道了迭代器大致的用法,我们来遍历一个迭代器。


In [ 1 ] : it = iter ( range ( 4 ))

In [ 2 ] : try :

... : while True :

... : print it . next ()

... : except StopIteration







请到「今天看啥」查看全文