python下面的yield(生成器、迭代器)的使用

参考文章https://blog.csdn.net/mieleizhi0522/article/details/82142856/

# 经典版本  最容易的理解就是return == yield  但是加上一个while  或者for的 yield就是一个及其节约内存的关键字(比如list占了很多内存、可以通过yield一次一次返回、这样代码就不会卡了)

# def foo():
# print("starting...")
# while True:
# res = yield 4
# print("res:",res)
#
# g = foo()
# print(next(g))
# print("*"*20)
# print(next(g))

#实用版本
li = [i for i in range(100,1,-2)]
# print(li)
def foo():
print("starting...")
for i in li:
#使用的时候、直接在yield 后面加上要返回的数据就ok
res = yield i
print("res: ",res)
g = foo()
print(next(g))
print("*"*20)
num = 10
while num > 0:
num -= 1
print("如果list很大、使用这种方法、可以减少内存的使用量、让代码更快",next(g))

posted on 2021-02-01 19:46  袁佳佳  阅读(95)  评论(0编辑  收藏  举报

导航