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语句处继续执行。

原文地址:https://www.cnblogs.com/shijingjing07/p/6478539.html