python迭代器和生成器的區別?
迭代器與生成器的區別:(1)生成器:生成器本質上就是一個函數,它記住了上一次返回時在函數體中的位置。對生成器函數的第二次(或第n次)調用,跳轉到函數上一次掛起的位置。而且記錄了程序執行的上下文。生成器不僅“記住”了它的數據狀態,生成器還記住了程序執行的位置。
(2)迭代器
迭代器是一種支持next()操作的對象。它包含了一組元素,當執行next()操作時,返回其中一個元素。當所有元素都被返回后,再執行next()報異常—StopIteration生成器一定是可迭代的,也一定是迭代器對象
(3)區別:①生成器是生成元素的,迭代器是訪問集合元素的一中方式②迭代輸出生成器的內容③迭代器是一種支持next()操作的對象④迭代器(iterator):其中iterator對象表示的是一個數據流,可以把它看做一個有序序列,但我們不能提前知道序列的長度,只有通過nex()函數實現需要計算的下一個數據。可以看做生成器的一個子集。
下一篇騰訊客服微信人工服務