迭代器和生成器
迭代器
概念:迭代,即重複不斷得到乙個結果的過程,此次得到的結果即下次的初始值
迭代器協議:物件需要提供next方法,返回乙個結果值,或者引起stoplteration,終止迭代
應用方法:提供iter()和next方法
優點:惰性計算,不會佔很多記憶體;不依賴索引進行取值
缺點:無法獲知物件自身長度,除非取完值報錯;只能向前走,不能後退
生成器:
概念:只要函式內部包含yield關鍵字,返回值採用yield,而不是return,
該函式得到的結果就是生成器,每執行一次,返回乙個結果,在每個結果之間,將函式掛起,以便在下一次在離開地方執行
注:生成器就是迭代器,但是迭代器不一定是生成器
例項:
列表推到式,返回所有結果
a = [i%2 for i in range(10)]
生成器
b = (i % 2 for i in range(10))
生成器和迭代器
可以直接作用於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...