1、yield,將函數變為 generator (生成器)
例如:斐波那契數列
def fib(num): a, b, c = 1, 0, 1 while a <= num: yield c b, c = c, b + c a += 1for n in fib(10): print(n, end=' ')# 1 1 2 3 5 8 13 21 34 55
2、Iterable
所有可以使用for循環的對象,統稱為 Iterable (可迭代)
from collections import Iterable, Iteratorprint(isinstance(fib(10), Iterable))print(isinstance(range(10), Iterable))# True# True
3、Iterator
可以使用next() <__next__()> 函數調用并且不斷返回下一個值的對象成為 Iterator (迭代器),表示一個惰性計算的序列。
list, dict, str是Iterable,不是Iterator:
from collections import Iteratorprint(isinstance(list(), Iterator))# False
但是可以通過iter()函數將其變為Iterator:
print(isinstance(iter(list()), Iterator))# True
總結
以上就是本文關于淺談python迭代器的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續參閱本站:python好玩的項目—色情圖片識別代碼分享、Python實現一個簡單的驗證碼程序、Python算法輸出1-9數組形成的結果為100的所有運算式等,有什么問題可以隨時留言,小編會及時回復大家的。感謝朋友們對本站的支持!
新聞熱點
疑難解答