02迭代器和生成器

可迭代的對象(Iterable):可以作用域For循環(huán)

生成器(generator):本質(zhì)是一個函數(shù),定義了可以使用next(),函數(shù)輸出值,調(diào)用生成器輸出生成器對象,生成器一定是可以迭代的

eg:? g = (x * x for xi in range(10))? // g為一個生成器對象

? ? ? ? print(next(g))

迭代器(Iterator):是一種支持next()操作的對象,凡是可作用于next()函數(shù)的對象都是Iterator類型,它們表示一個惰性計算的序列;

from collections.abc import Iterator

it = iter([1,2,3,4,5])# 循環(huán):

while True:

try:

# 獲得下一個值:

x = next(it)

except????StopIteration:

# 遇到StopIteration就退出循環(huán)

break

(3)區(qū)別:

①生成器是生成元素的,迭代器是訪問集合元素的一中方式

②迭代輸出生成器的內(nèi)容

③迭代器是一種支持next()操作的對象

④迭代器(iterator):其中iterator對象表示的是一個數(shù)據(jù)流,可以把它看做一個有序序列,但我們不能提前知道序列的長度,只有通過next()函數(shù)實現(xiàn)需要計算的下一個數(shù)據(jù)??梢钥醋錾善鞯囊粋€子集。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容