coding:utf-8
列表生成器(generator):
并不会一次性的将所有的结果计算出来,存放到内存当中,而是在使用某一些值得时候,才会去动态计算结果并返回,而没有使用的值是不会计算的。
print xrange(1, 10)
print range(1, 10)
创建一个列表生成器
generator = (x*x for x in xrange(1,4))
print generator
获取生成器中的值,使用next()方法
# print generator.next()
# print generator.next()
next()函数调用时,如果没有下一个值,会抛出一个StopIteration停止迭代的异常。
# print generator.next()
generator和list,str一样,都属于可迭代对象。
使用for循环在遍历genertor的时候,其实就是在使用next()方法在生成器中取值。
for res in generator:
print '===',res