生成器實現range功能

2021-09-25 21:56:17 字數 632 閱讀 5449

range(引數 i,引數 j,引數 z):引數 i是起始位置,引數 j是結束位置,引數 z是在引數1和引數2範圍內的遞增量。

**如下:

def generator(i=0,j=0,z=1):   # range功能的實現

while i=1: #遞增時

yield i # yield 只保留 當前 數值

i=i+z

pass

while i>j and z<0: #遞減時

yield i # yield 只保留 當前 數值

i = i + z

f = generator(2,10,2) #例項一

for i in f:

print(i)

print() #輸出乙個空格

#具體應用

for x in generator(10,2,-2): #例項二

print(x)

yield的優勢是總保留當前值,節省記憶體空間

如有紕漏,請多指教

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 存的不再是列表,而是乙個位址,而這個位址就是我們的生成器物件的位址 這東西有什麼用呢?當然時,節省記憶體啦 假設現在有很龐大的一組資料要處理,貌似不可能把它一次性載入記憶體再進行處理,這時候就體現...