生成器
作用:有的时候我们需要一些元素,但是我们可能只仅仅需要访问前面的几个元素,那么后面的绝大多数元素占用的空间都白白浪费了,而且我们要是穿件一个包含上百万级元素的列表的话,岂不是浪费很多内存空间;所以,如果列表元素可以按照某种算法推算出来,那我们是否可以在循环的过程中不断推算出后续的元素呢?这样就不必创建完整的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
等待更新
原文:http://www.cnblogs.com/Plynn/p/6426094.html