生成器
一.列表生成器
列表生成式是Python 内置的非常简单却强大的可以用来创建 list的生成式
要生成 list [1, 2, 3, 4, 5, 6, 7] 可以用 range(1, 8)
[例子]:求出1-9的平方数
方法一:for循环
L = []
for i in range(1,10):
L.append(i*i)
print L
方法二:列表生成器
print [ i**2 for i in range(1,10) ]
二.生成器
1.为什么需要生成器:
- 通过列表生成式,我们可以直接创建一个列表,受到内存限制,列表容量肯定是有限的;
- 创建一个包含 100 万个元素的列表,占用很大的存储空间;
2.生成器是什么?
在循环的过程中不断推算出后续的元素呢?这样就不必创建完整的 list,从而节省大量的空间。在 Python 中,这种一边循环一边计算的机制,称为生成器(Generator)
3.如何创建一个生成器?
怎么创建生成器?把一个列表生成式的 [] 改成 ()
使用g.next()方法依次读取元素(麻烦)
g = (x for x in range(4))
g.next()
g.next()
g.next()
g.next()
使用 for 循环(推荐)
g = (x for x in range(5))
for x in g :
print x,
输出结果为:
0 1 2 3 4