python迭代器中Yield方法怎么用?
Yield用于返回數(shù)據(jù),程序執(zhí)行到y(tǒng)ield后,返回結果,記住當前狀態(tài),暫停執(zhí)行,下次調用時,根據(jù)上次的狀態(tài),返回下一個結果,記住新的狀態(tài),暫停執(zhí)行。通俗的講,就是調用一次,返回一個數(shù)據(jù),再調用一次,返回下一個數(shù)據(jù)。沒錯,類似我們日常生活中的擠牙膏。
下面就為大家詳細介紹關于Yield方法的使用。
定義生成器函數(shù):
defgetData():
listData=(x**2forxinrange(6))
forxinlistData:
yieldx
獲取生成器:
genData=getData()
輸出生成器的數(shù)據(jù):
print(genData.__next__())
繼續(xù)輸出生成器的數(shù)據(jù):
print(next(genData))
遍歷輸出:
genData1=getData()
forxingenData1:
print(x)
代碼執(zhí)行結果如下:
0
1
0
1
4
9
16
25
總結:
迭代器只有在下次調用的時候才會去計算本次生成的值,而不是像列表那樣預先生成所有的值。這種方式需要將所有的值預先保存在列表中,當列表很大的時候,非常消耗內存。
上述就是python中迭代器中Yield方法的全部用法啦,感興趣的小伙伴可以多多嘗試使用哦~更多Python學習教程請關注IT培訓機構:千鋒教育。