Python迭代器和生成器(3)
前面理解了迭代器的要点和实现。从这里来讲我们使用迭代器就仅仅是为了让它在for循环中使用,目前看起来是这样。但实际上,迭代器是为了我们接着来说的生成器。老师举了一个非常浅显易懂的例子来说明迭代器的用法。老师说他一个星期不想下楼吃饭,有2种做法,一是一次买很多馒头,每天吃一个;还有一种是每天吃的时候叫外卖送。如果放在程序中来讲就是一次保存很多数据,以备将来使用;二是用的时候生成数据。很显然第二种方法更加节约空间。这就是迭代器的高级用法,保存生成数据的代码(或者说是方法),而不是数据列表,也就是生成器。 生成器是一种特殊的迭代器。特殊在它没有__next__方法,但也一样可以像迭代器那样使用。
举例来说:
rang(1,10)返回的是列表[1,2,3,4,5,6,7,8,9,10]
xrange(1,10)返回的是一个对象,这个对象保存了得到上述列表的方法。