定義:
一個迭代器(iterator)是一個管理一系列值的迭代的對象。如果一個變量i指代一個迭代器對象,那麼每次調用內建函數next(i)就可以產生一個這一系列值的下一個元素,如果StopIteration異常發生則意味着沒有更多的元素可以產生了。
一個iterable是一個對象,obj,可以用語句iter(obj)產生一個迭代器。
從定義可以很明顯的看出iterator和iterable的區別。一個iterable對象可以產生一個iterator,一個iterator可以迭代產生一個iterable對象包含的元素。
舉個例子,for循環的內部原理就是每次循環調用一次next(i),直到遇到StopIteration異常。
參考文獻
Data Structures and Algorithms in Python,WILEY