使用生成器表示式取代列表解析可以同時節省cpu 和 記憶體(ram)。如果你構造乙個列表的目的僅僅是傳遞給別的函式,(比如 傳遞給tuple()
或者set()
), 用生成器表示式替代吧!
def ord_map(a_string):
for c in a_string:
yield ord(c)
gen = ord_map(unique_characters)
>>> unique_characters =
>>> gen = (ord(c) for c in unique_characters)
>>> gen
at 0x02ee1c38>
>>> next(gen)
69>>> next(gen)
68>>> tuple((ord(c) for c in unique_characters))
(69, 68, 77, 79, 78, 83, 82, 89)
>>> set((ord(c) for c in unique_characters))
>>> list((ord(c) for c in unique_characters))
[69, 68, 77, 79, 78, 83, 82, 89]
>>>
python之生成器
先來介紹下迭代器 迭代器即迭代取值的工具 迭代 的意思就是重複的基於上一次的結果取值 迭代器可以不依賴索引取值 取值 取乙個值就會少乙個,取完了,還取值就會報錯 1.什麼是生成器 在函式內但凡出現yield關鍵字,在呼叫函式就不會執行函式內 會返回乙個迭代器物件的值,該值稱之為生成器 強調 生成器的...
Python之生成器
通過列表生成式,我們可以產生列表,但是列表容量肯定有限,如果建立乙個很大的列表元素,要占用大量的記憶體空間,如果我們只要列表前面的元素,則後面的儲存空間大大浪費,這時候我們需要引出python生成器,這樣就必要建立完整的列表,從而大大節省空間,我們稱之為 generator.建立生成器方法一 使用 ...
Python之生成器
生成器可以理解為一種資料型別,這種資料型別自動實現了迭代器協議 其他的資料型別需要呼叫自己的 iter 方法 所以生成器就是可迭代物件。python有兩種方式提供生成器 1.生成器函式 常規函式定義,但是使用yield語句而不是return語句返回結果。yield語句一次返回乙個結果,在每個結果中間...