python學習筆記-(15)python中的循環對象

1. 循環對象的引入

python中,循環對象就是包含一個_next_()方法的對象,這個方法的作用就是進行到下一個結果,結束結果之後會報出StopIteration錯誤。舉例如下:

for i in range(5):

    print i

說明:上例是比較簡單的for循環,那麼,每次循環時會調用循環對象同時對象調用_next_()方法,直到出現StopIteration錯誤。其實,每次遍歷都會返回一個循環對象,直到循環條件終止。

循環對象的好處:概括說就是隨用隨生成,所使用的元素可在循環過程中逐次生成。那麼,就可以節省空間資源,提高效率。

2. Python中的生成器(可構成一個自定義的循環對象)

先舉個生成器的例子:

def f():

a = 1

yield a

a = a * a

yield a

print f()

print f()

說明:從例子中可見,生成器的編寫和函數定義類似,就是把return改爲yield。生成器中遇到一個yield時,會暫停運行生成器,返回yield後面的值。當再調用生成器時,會從剛纔暫停的地方繼續運行,直到遇到下一個yield生成器自身又構成一個循環器,每次循環使用一個yield返回的值。生成器中有幾個yield,循環器就循環幾次。

3. Python表推導list comprehension可以快速的生成表)

先舉例如下:

list = []

for i in range(5):

   list.append(i ** 2)

以上的例子會產生一個表list,採用簡單快捷的方式(表推導)來改寫例子。

list = [I ** 2 for I in range(5)]

可以看出,表推導和生成器表達式類似,但表推導使用中括號[]。其實,表推導的原理也是利用循環對象來處理的。

發佈了65 篇原創文章 · 獲贊 11 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章