記憶體克星 生成器

2021-10-14 02:39:30 字數 782 閱讀 6808

python內建了很多非常有用的資料結構,比如列表(list)、集合(set)以及字典(dictionary)。這些資料結構方便了開發人員,特別是通過列表生成式,可以很方便的建立乙個列表。但是,畢竟記憶體有限,列表的容量肯定會受到限制。當列表資料量大到我們開始擔心系統記憶體空間時,就應該考慮使用生成器進行迭代了。

在python中,生成器實際上是乙個存在於堆上的函式。這個函式可以在迴圈過程中不斷推算出後續的元素,直到產生特殊異常stopiteration結束。

如何建立乙個生成器?

def crange(begin,end,step=1):

x = begin

while x < end:

yield x

x += step

>>> for n in crange(1,3,0.5):

print n

>>> for n in crange(1,3,0.5):

...             print n

...

11.5

2.02.5

函式中只要出現了yield語句,就會被轉變成乙個生成器。與普通函式不同,生成器只會在響應迭代過程中的next時才會執行。一旦生成器函式返回,迭代就會停止。

小結python中的yeild關鍵字或者()均可以用來建立生成器函式。生成器函式通過在堆中儲存演算法的方式生成結果,在大資料量的迭代過程中可極大減少記憶體消耗。

python 生成器作用 Python生成器

生成器介紹 在函式內部包含yield關鍵字,那麼該函式執行的結果是生成器,生成器就是迭代器。生成器的功能 把函式結果做成迭代器 以一種優雅的方式封裝好iter,next 提供了一種自己定義迭代器的方式。使用生成器建立乙個迭代器 def a print a yield 11 使用yield,執行後返回...

python生成器好處 Python生成器筆記

python中三大器有迭代器,生成器,裝飾器,本文主要講述生成器。主要從生成器的概念,本質,以及yield關鍵字的使用執行過程。本質 生成器是一類特殊的迭代器,使用了yield關鍵字的函式不再是函式,而是生成器。使用了yield的函式就是生成器 1.yield關鍵字有兩點作用 1.1 yield語句...

古文生成器python python(生成器)

生成器 先從列表生成式說起 可以通過簡單的式子,生成有規律的列表 如果把 換為 會發生什麼呢?看到 x 存的不再是列表,而是乙個位址,而這個位址就是我們的生成器物件的位址 這東西有什麼用呢?當然時,節省記憶體啦 假設現在有很龐大的一組資料要處理,貌似不可能把它一次性載入記憶體再進行處理,這時候就體現...