1、yield,將函數(shù)變?yōu)?generator (生成器)
例如:斐波那契數(shù)列
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循環(huán)的對象,統(tǒng)稱為 Iterable (可迭代)
from collections import Iterable, Iteratorprint(isinstance(fib(10), Iterable))print(isinstance(range(10), Iterable))# True# True
3、Iterator
可以使用next() <__next__()> 函數(shù)調(diào)用并且不斷返回下一個值的對象成為 Iterator (迭代器),表示一個惰性計算的序列。
list, dict, str是Iterable,不是Iterator:
from collections import Iteratorprint(isinstance(list(), Iterator))# False
但是可以通過iter()函數(shù)將其變?yōu)镮terator:
print(isinstance(iter(list()), Iterator))# True
總結(jié)
以上就是本文關(guān)于淺談python迭代器的全部內(nèi)容,希望對大家有所幫助。有什么問題可以隨時留言,小編會及時回復(fù)大家的。感謝朋友們對本站的支持!
新聞熱點
疑難解答
圖片精選