1樓:Python開發大佬
要了解yield的作用,就要了解什麼是生成器。要了解生成器,首先要了解迭代器。
I t e r a b l e 迭代器
在建立列表時,可以逐個讀取其專案。逐項讀取的專案稱為迭代:
mylist是可迭代的物件,這就是迭代。
使用 for… in…的所有物件都是可迭代的物件,如 list、 string等。
由於您可以根據自己的意願讀取這些迭代器,因此這些迭代器非常方便,但這會將所有的值儲存在記憶體中,當有大量的值時,這可能不是您想要的效果,此時需要乙個生成器。
Generators生成器。
生成器是迭代器,這種迭代器只能迭代一次。生成器不會將所有的值都儲存在記憶體中,會動態生成這些值對於python3 (x* x for x in range (3)),返回的並非元祖,而是乙個生成器,使用 for迭代時將逐個獲得元素。使用將返回list而非生成器,在此使用()獲得生成器,如果有更複雜的邏輯,如何獲得生成器,此時需要yield登場。
2樓:037E
舉乙個生活中買燒餅的例子
沒有生成器:你去燒餅店買10 個燒餅,老闆做好10 個燒餅遞給你,你吃了10 個燒餅。要是現在老闆只做好9 個燒餅,你就耐心等著吧。
有了生成器:老闆你還要多久啊?什麼,才做出來1 個燒餅?沒事沒事,你做好1 個給我1 個,我吃1 個。等你做好了我再吃下乙個。
這樣有什麼好處呢
處理時間更短:之前等你拿到燒餅的時候,最開始的燒餅已經涼了,現在你都能吃上熱燒餅
3樓:Python Kcol
有那麼乙個櫥子(例如列表)
櫥子裡有幾個杯子,杯子上面有編號(例如1,2,3,4...)就拿出乙個杯子
點幾次,拿幾次,就醬
如何最簡單 通俗地理解Softmax演算法?
老杜 softmax就是soft版本的max,理解了soft的含義就理解softmax了。什麼叫soft版本?我們先看看普通的max,以及普通max hard在什麼地方。比如說三個數x 2,1,5 求max x 小學生都會,答案是5,很簡單.如果以向量的方式表達這個對映關係,也可以表示成max x ...
如何通俗簡單地理解 Inbound Marketing 和 Outbound Marketing
吳嘉陽 簡單一句話,以客戶需求的強烈程度分 主動營銷 inbound marketing 使用者需求相對較高,使用者主動索取產品相關資訊 和被動營銷 outbound marketing 使用者需求相對較低,被動被強推來索取產品資訊 劉延飛 Inbound marketing會慢慢成為marketi...
如何最簡單 通俗地理解C 的結構體?
小王同學在積累 一 筆記 二 筆記目錄 結構體屬於使用者自定義的資料型別,允許使用者儲存不同的資料型別。語法 struct 結構體名 通過結構體建立變數的方式有三種 1 struct 結構體名變數名 2 struct 結構體名變數名 3 定義結構體時順便建立變數 結構體變數利用點.訪問成員 incl...