10:15 2019/2/18/周一
day19
//生成器函数import time
def gen():
print("lai")
print("qu")
print("zou")
yield "我"
time.sleep(3)
yield "想"
time.sleep(3)
yield "睡觉"
res=gen()
print(next(res))
print(next(res))
print(next(res))
结果:
lai
qu
zou
我
想
睡觉
//生成器函数每次都是基于上次的状态到下一个状态。就是yield到下一个yield.
def product_baozi():
for i in range(10):
yield i
print("正在生产包子")
yield i
print("正在买包子")
res=product_baozi()
print(res.__next__())
print(res.__next__())
print(res.__next__())
//生成器函数里面的yield会自动保存上一次任务的状态。并且每次利用到next的时候执行到一个yiedl.
//生成器总结。
通过open打开文本,然后生成迭代器,最后利用迭代器性质求职。
文档内容:
{"name":"北京","population":15}
{"name":"上海","population":16}
{"name":"徐州","population":17}
{"name":"南京","population":18}
code:
def product_baozi():
with open("seek","r",encoding="UTF-8") as f:
for i in f:
yield i
res=product_baozi()
Sum_popolation=0
for p in res:
p_dic=eval(p)
Sum_popolation=p_dic["population"]+Sum_popolation
print(Sum_popolation)
结果:66
方法二:
def product_baozi():
with open("seek","r",encoding="UTF-8") as f:
for i in f:
yield i
res=product_baozi()
Sum_popolation=sum((eval(i)["population"] for i in res))//利用三元函数。
print(Sum_popolation)
python_218day19-生成器函数(对文本生成迭代操作)
猜你喜欢
转载自blog.csdn.net/qq_37431752/article/details/87643635
今日推荐
周排行