pyhton 迭代器和生成器

2021-06-18 00:07:13 字數 681 閱讀 1056

1、  迭代比直接使用列表遍歷效率根據高。比如字典的keys函式返回的列表,以及iterkeys返回的迭代器。

2、  reversed() 內建函式將返回乙個反序訪問的迭代器.引數必須為序列。

3、  enumerate:返回乙個迭代器:有索引值。

4、  for  eachline  in myfile  替換  for  eachline  in myfile.readlines() :

5、注意:在迭代的過程中不可以更改序列,否則會引發問題,導致迭代出錯。

6、  可以自己定義乙個類,可以迭代使用。不過需要定義方法:__iter__,next。

7、   

1、  yield關鍵字可以阻塞住函式的執行,並且儲存當前的執行環境,整個包被稱為生成器。

2、  生成器可以通過呼叫生成器函式來建立。生成器函式是指包含關鍵字yield的函式。

3、  生成器可以通過.next()來執行。每呼叫一次,就執行**,直到遇到yield關鍵字停止,並且返回yield關鍵字後面的表示式的值。

4、  可以通過呼叫send()函式來傳送訊息到生成器中。a = yield l:表示將send的入參賦值給a。

5、  throw:允許客戶端傳入要丟擲的任何異常。

6、  和throw相同,只不過是要丟擲乙個特定的異常:generatorexit。

生成器和迭代器

可以直接作用於for迴圈的物件稱為可迭代物件 iterable.可以用isinstance 判斷乙個物件是否是iterable物件。isinstance iterable true isinstance iterable true isinstance 235,iterable false 而生成器...

迭代器和生成器

1 迭代器的概念 print dir 告訴我列表的所有用法 有雙下劃線的所有方法叫做雙下方法,是c語言已經寫好的方法。你可以用不止一種方法呼叫它。列表的用法變集合 set dir 求交集 set dir set dir set dir 求列表,字典,字串它們的用法的交集 他們共同的用法 iterab...

生成器和迭代器

1.iterator 迭代器 舉例 我們對list使用for for i in 1,2,3,4 print i 12 34對string物件使用for for ch in python print ch py thon對字典物件使用for for k in print k yx對檔案使用for fo...