python之生成器

2021-08-20 17:43:10 字數 659 閱讀 7511

先來介紹下迭代器:

迭代器即迭代取值的工具

迭代 的意思就是重複的基於上一次的結果取值

*迭代器可以不依賴索引取值                       取值=取乙個值就會少乙個,取完了,還取值就會報錯

1.什麼是生成器

在函式內但凡出現yield關鍵字,在呼叫函式就不會執行函式內**,會返回乙個迭代器物件的值,該值稱之為生成器

強調:生成器的本質就是迭代器

2.為啥要有生成器呢?

生成器是一種自定義迭代器的方式

流程:

3.生成器的使用例項

生成器值send使用方法:

總結:#1、為我提供一種自定義迭代器的方式,可以在函式內用yield關鍵字,呼叫函式拿到的結果就是生成器=迭代器

#2、yield跟return一樣,可以返回多次值,區別在於return只能返回一次值,而yield可返回多次

python之生成器

使用生成器表示式取代列表解析可以同時節省cpu 和 記憶體 ram 如果你構造乙個列表的目的僅僅是傳遞給別的函式,比如 傳遞給tuple 或者set 用生成器表示式替代吧 def ord map a string for c in a string yield ord c gen ord map u...

Python之生成器

通過列表生成式,我們可以產生列表,但是列表容量肯定有限,如果建立乙個很大的列表元素,要占用大量的記憶體空間,如果我們只要列表前面的元素,則後面的儲存空間大大浪費,這時候我們需要引出python生成器,這樣就必要建立完整的列表,從而大大節省空間,我們稱之為 generator.建立生成器方法一 使用 ...

Python之生成器

生成器可以理解為一種資料型別,這種資料型別自動實現了迭代器協議 其他的資料型別需要呼叫自己的 iter 方法 所以生成器就是可迭代物件。python有兩種方式提供生成器 1.生成器函式 常規函式定義,但是使用yield語句而不是return語句返回結果。yield語句一次返回乙個結果,在每個結果中間...