Python函数2

生成器

 作用:有的时候我们需要一些元素,但是我们可能只仅仅需要访问前面的几个元素,那么后面的绝大多数元素占用的空间都白白浪费了,而且我们要是穿件一个包含上百万级元素的列表的话,岂不是浪费很多内存空间;所以,如果列表元素可以按照某种算法推算出来,那我们是否可以在循环的过程中不断推算出后续的元素呢?这样就不必创建完整的list,从而节省大量的空间。在Python中,这种一边循环一边计算的机制,称为生成器:generator。

创建一个生成器的方法,有很多种,例:

>>> l = [x * x for x in range(10)]
>>> l
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
>>> g = (x * x for x in range(10))
>>> g
<generator object <genexpr> at 0x000001E44C665048>
>>> next(g)     #我们想要生成器的元素使用next函数
0
>>> next(g)
1
>>> next(g)
4
>>> next(g)
9
>>> next(g)
16
>>> next(g)
25
>>> next(g)
36
>>> next(g)
49

等待更新

 

posted @ 2017-02-21 20:35  牛逼点的名字  阅读(161)  评论(0编辑  收藏  举报