python 的生成器,yield的使用

生成器 :含有yield 的关键字的函数就是一个生成器。

生成器的运行原理:调用函数时,当函数运行到yield时停止,返回值,下次调用时,就从这次的yield出继续执行,局部变量还是使用这次变量的值。相当于函数在yield被冻结,下次继续在yield处继续执行。

为什么要使用生成器 。

生成器相比一次列出所有的内容的优势:

1.更节省存储空间

2.响应更迅速

3.使用更灵活

举个例子:

生成器写法:

def gen(n)
    for i in range(n)
            yiled i**2


for i in gen(5)
    print(i," ",end=" ")


0 1 4 9 16

普通写法:

def square(n)
    ls = [i**2 for i in range(n)]
    return ls
for i in square(5):
    print(i," ",end =" ")

0 1 4 9 16

 

posted @ 2018-02-10 11:40  拓睿峰  阅读(151)  评论(0编辑  收藏  举报