python圓形生成器 python中的生成器

2021-10-22 12:58:14 字數 1196 閱讀 7342

(1) yield

生成器其實也是乙個迭代器,可以進行迭代,注意的它只可以迭代一次,由於它的值並沒有全部放進去記憶體中,而是在執行過程中生成值,故節約了記憶體空間。我們可以遍歷這個生成器或者使用乙個for迴圈。

下面舉乙個例子進行說明:

def func(n):

a = b = 1

for i in range(n):

yield a

a, b = b, a + b

for x in func(100):

print(x)

這樣子消耗的記憶體遠遠比寫乙個列表進行儲存資料占用的記憶體少,節約了開發的記憶體資源。

(2) next()函式

next()函式可以依次檢視序列的下乙個元素,如果檢視的元素超出了序列的索引時,則引發stopiteration異常。

下面舉個簡單的例子說明一下:

def func():

for i in range(5):

yield i

n = func()

print(next(n))

print(next(n))

print(next(n))

print(next(n))

print(next(n))

#報錯print(next(n))

輸出結果:

traceback (most recent call last):

print(next(n))

stopiteration

(3) iter()函式

iter函式可以將乙個可迭代物件轉化成迭代器物件,那字串舉例子吧,s = 'pyhton' 如果直接next(s),肯定會報錯,報錯型別:typeerror: 'str' object is not an iterator。字面上的意思,字串物件不是迭代器,這時我們需要將字串轉化為迭代器物件。

iter()函式的使用如下:

s = 'python'

s_iter = iter(s)

print(next(s_iter))

print(next(s_iter))

print(next(s_iter))

print(next(s_iter))

print(next(s_iter))

print(next(s_iter))

輸出:pyt

hon

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 生成器函式

一 生成器 生成器指的是生成器物件,可由生成器表示式得到,也可使用 yield 關鍵字得到乙個生成器函式,呼叫這個函式得到乙個生成器物件 生成器物件,是乙個可迭代物件,是乙個迭代器 生成器物件,是延遲計算 惰性求值的 1.1 生成器函式 函式體重包含 yield 語句的函式,就是生成器函式,呼叫後返...