使用生成器建立新的迭代器

2021-09-11 12:37:08 字數 422 閱讀 7296

實現乙個自定義的迭代模式,使其區別於常見的內建函式(range, reversed等)。

#實現生成器

def frange(start, stop, increment):

x = start

while x < stop:

yield x

x += increment

#迭代呼叫

for n in frange(1, 10, 0.5):

print(n)

乙個函式中需要有乙個 yield 語句即可將其轉換為乙個生成器。 跟普通函式不同的是,生成器只能用於迭代操作。

乙個生成器函式主要特徵是它只會回應在迭代中使用到的 next 操作。 一旦生成器函式返回退出,迭代終止。我們在迭代中通常使用的for語句會自動處理這些細節,不用自己處理。

使用生成器建立新的迭代模式

你想實現乙個自定義迭代模式,跟普通的內建函式比如 range reversed 不一樣。如果你想實現一種新的迭代模式,使用乙個生成器函式來定義它。下面是乙個生產 某個範圍內浮點數的生成器 def frange start,stop,increment x start while x stop yie...

00404 使用生成器建立新的迭代模式

你想實現乙個自定義迭代模式,跟普通的內建函式比如 range reversed 不一樣。生成器函式 usr bin env python deffrange stop,start 0,increment 1 x start while x stop yield x x increment for n...

生成器 迭代器

最近見天一直在看廖大的python教程,卻發現很多基礎看著很簡單,但卻不會應用,歸根結底還是因為理解不到位,故而又將教程學了一遍,並將自己的理解記錄一下,也方便後面查閱。由於沒有相關程式設計基礎,有些理解可能是錯的,敬請批評指正。想深入具體學習廖大部落格請移步廖雪峰的官方 有時候用迴圈生成列表太過繁...