如何最簡單 通俗地理解Python的生成器?

時間 2021-05-12 14:59:33

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...