代码学习PYTHON 生成器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了代码学习PYTHON 生成器相关的知识,希望对你有一定的参考价值。

一、生成器

一遍循环一遍计算的机制,称为生成器

二、生成器的特点:

1、节约内存

2、迭代到下一次的调用时,所使用的参数都是第一次所保留下的,即是说,在整个所有函数调用的参数都是第一次所调用时保留的,而不是新创建的

三、创建方法

1、把列表生成式的[]改为()

#列表
L = [x*2 for x in range(5)]
print L
#生成器
G = (x*2 for x in range(5))
print G

以上代码运行结果

[0, 2, 4, 6, 8]
<generator object <genexpr> at 0x0000000002E40AF8>

2、yield 生成

yield 自动终止返回结果。

循环从终止的地方向下进行

def  creatNum():
    print ("----start----")
    i = 0
    while i < 5:
        temp = yield i
        print(temp)
        i+= 1
#创建一个生成器对象
a = creatNum()
#让对象开始执行,第一次从头开始执行,如果之前执行过,就从上一次停止的地方开始执行
next(a)

以上代码运行结果

----start----
>>> next(a)
None
1
>>> next(a)
None
2
>>> a.send("SQYY")
SQYY
3
>>> next(a)
None
4
>>> 

四、补充:

send()

执行到yield时,gen函数作用暂时保存send发送过来的值

c.next()等价c.send(None)

以上是关于代码学习PYTHON 生成器的主要内容,如果未能解决你的问题,请参考以下文章

Python代码阅读(第40篇):通过两个列表生成字典

学习 PyQt5。在我的代码片段中找不到错误 [关闭]

Python学习总结

30 段 Python 实用代码

[vscode]--HTML代码片段(基础版,reactvuejquery)

postman 自动生成 curl 代码片段