生成器定义:
通过列表生成式,我们可以直接创建一个列表,但是,受到内存限制,列表容量肯定是有限的。而且,创建一个包含100万个元素的列表,不仅占用很大存储空间,如果我们仅仅需要访问前面几个元素,那后面绝大多数元素占用的空间都白白浪费了。所以,如果列表元素可以按照某种算法推算出来,那我们是否可以在循环的过程中不断推算出后续的元素呢?这样就必创建完整的list,从而节省大量的空间。在Python中,这种一边循环一边计算的机制,称为生成器:generator
列表生成式:
[i*2 for i in range(10)]
生成器:
(i*2 for i in range(10))
生成器特性:
1.生成器只有在调用时才会生成相应的数据
2.只记录当前位置
3.只有一个__next__()方法或next()
4.形式: (i*i for i in range(100))