1. 程式人生 > >python 叠代器和生成器的區別

python 叠代器和生成器的區別

我們 art 不用 tails iteration ron 解釋 for 生成器

叠代器(iterator)是一個實現了叠代器協議的對象,python的一些內置數據類型(列表,數組,字符串,字典等)都可以通過for語句進行叠代,我們也可以自己創建一個容器,實現了叠代器協議,可以通過for,next方法進行叠代,在叠代的末尾,會引發stopIteration異常。 --------------------- 本文來自 xiongjiezk 的CSDN 博客 ,全文地址請點擊:https://blog.csdn.net/xiongjiezk/article/details/51186968?utm_source=copy

生成器(generator)是通過yield語句快速生成叠代器,可以不用iter和next方法
yield可以使一個普通函數變成一個生成器,並且相應的next()

方法返回是yield後的值。一種更直觀的解釋是:程序執行到yield時會返回結果並暫停,再次調用next時會從上次暫停的地方繼續開始執行。
顯然,生成器自身有構成一個叠代器,每次叠代時使用一個yield返回 的值,一個生成器中可以有多個yield的值 --------------------- 本文來自 xiongjiezk 的CSDN 博客 ,全文地址請點擊:https://blog.csdn.net/xiongjiezk/article/details/51186968?utm_source=copy

python 叠代器和生成器的區別