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