pyDay9

内容来自雪峰的官方网站。

generator

1、引入generator的原因。

通过列表生成式,我们可以直接创建一个列表。但是,受到内存限制,列表容量肯定是有限的。而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面绝大多数元素占用的空间都白白浪费了。

所以,如果列表元素可以按照某种算法推算出来,那我们是否可以在循环的过程中不断推算出后续的元素呢?这样就不必创建完整的list,从而节省大量的空间。在Python中,这种一边循环一边计算的机制,称为生成器:generator。

 

2、创建一个generator的方式

第一种方法很简单,只要把一个列表生成式的[]改成(),就创建了一个generator。

>>> g = (x * x for x in range(1 , 4))
>>> g
<generator object <genexpr> at 0x000001F706186990>

 

3、打印出generator的每一个元素。

1) next(g)

2) for n in g: print(n)

posted @ 2017-02-20 14:38  xkfx  阅读(120)  评论(0)    收藏  举报