python中yield的用法 簡明教程

2021-10-10 08:21:50 字數 771 閱讀 9873

python中yield關鍵字是區分新老pythoner的標誌之一。

yield是乙個六級詞彙,常見意思有「產量,屈服(動詞)」。這裡的yield大概率解釋為乙個僻義「繳出」。咱們在什麼情況下,會用到yield呢?答:處理大型資料集的時候

yield單獨解釋比較費勁,但是跟next()結合看,就會非常簡單。先看乙個小栗子:

a = [1, 2, 3]

def y1():

for i in a:

yield i

b = y1()

print(b)

print(next(b))

print(next(b))

print(next(b))

輸出為:

1

23

咱們用乙個yield構建出乙個生成器函式y1,a是咱們要遍歷的物件。咱們直接print生成器的返回值,得到的是乙個記憶體位址。咱們發現,next(b)每次執行一下,yield指向的記憶體位址就會順序後移。而next(b)的返回值是當前位址內的資料。yield+next就是乙個順序迭代子

常見如pytorch,keras等nn框架處理資料集的基礎類都會用到yield+next來獲取批資料。這樣有什麼優勢呢,首先可以把資料入口封裝成介面的形式,模組性更好,也不會讓資料在main函式中「喧賓奪主」。其次,預處理資料等工作都可以放到生成器的部分。

Python中的yield用法

在python中,我們將帶有 yield 的函式稱之為 generator 生成器 generator可以一邊迴圈一邊計算,是可迭代物件,也就是說可以使用for迴圈來迭代出generator的各個值。一般為了說明generator,都會使用斐波那契數列來舉例,這裡也不例外 如結果所示,呼叫 fab ...

Python中的yield用法

yield關鍵字用來定義生成器 generator 其具體功能是可以當return使用,從函式裡返回乙個值,不同之處是用yield返回之後,可以讓函式從上回yield返回的地點繼續執行。也就是說,yield返回函式,交給呼叫者乙個返回值,然後再 瞬移 回去,讓函式繼續執行,直到嚇一條yield語句再...

python中 yield的用法

接下來是正題 首先,如果你還沒有對yield有個初步分認識,那麼你先把yield看做 return 這個是直觀的,它首先是個return,普通的return是什麼意思,就是在程式中返回某個值,返回之後程式就不再往下執行了。看做return之後再把它看做乙個是生成器 generator 的一部分 帶y...