您的位置:首页 > 编程语言 > Python开发

Python yield 的理解

2017-10-03 17:57 302 查看
转载自http://www.cnblogs.com/cotyb/p/5260032.html

当处理大量数据的时候,一个长的数列会浪费很多资源,所以Python的处理办法是通过yield语句,从函数的角度讲和return是一样的道理,但是yield得会上次的执行结果,通过next语句,每next一次 就返回下一次的结果,一直到迭代完成,抛出错误,结束迭代。#coding
def cube(n):
for i in range(n):
yield i ** 3

for i in cube(5):
print i

#output
0
1
8
27
64从例子中看出来,cube(5)
>>> # 列表解析生成列表
>>> [ x ** 3 for x in range(5)]
[0, 1, 8, 27, 64]
>>>
>>> # 生成器表达式
>>> (x ** 3 for x in range(5))
<generator object <genexpr> at 0x000000000315F678>
>>> # 两者之间转换
>>> list(x ** 3 for x in range(5))
[0, 1, 8, 27, 64]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: