python生成器,函数,数组
1.什么是生成器
用一个比喻来形容,工厂中生产保龄球的流水线,机器每次只生产一个保龄球,下次继续生产下一个,直到停止(原料不足,停止供电等条件)为止。
机器就是我们的生成器。
2.使用示例
在python中数组的语法是[]
L=[x * x for x in range(10)] print L
生成器的语法是()
g=(x*x for x in range(10)) print g print g.next()
运行结果如下:
运行后,数组全部初始化,生成器执行一次,记录当前位置,下次继续执行。
3.使用yield生成器
def odd(): print "step 1" yield print "step 2" yield print "step 3" yield o=odd() o.next() o.next() o.next()
运行结果如下:
加入yield后,odd就不是普通函数了,而是一个生成器,在执行过程中,遇到yield就中断,下次又继续执行。
4.生成器和数组的区别
比如一组100万的数据,用数组来存储,需要占用很大的存储空间,而用生成器,每次只占用一个空间。
5.生成器和函数的区别
函数在return或者函数最后一条语句后返回,生成器generator在每次调用next()时执行,遇到yield就返回,再次执行时从上次返回的yield语句处继续执行。