迭代器
容器(列表、集合、元組、字典)都是可迭代的。可迭代對象中有iter( )方法,加上next( )方法形成一個迭代器。
在 for循環 中用到了迭代器,迭代器有next( )方法可以獲取容器中下一個對象,直到取完容器中的數據,返回“ StopIteration” 異常。
可以使用isinstance( ) 方法判斷一個對象是否可迭代。
生成器
在for中,如果想要枚舉它的元素需要事先生成所有的數據,而這些數據保存在內存中,這樣容易造成內存溢出的問題。
生成器是隻有用到的時候纔會生成一個元素,並調用next( )方法生成下一個元素。生成器的標誌就是yield關鍵字,yield能夠保證下次執行循環時從上次未執行的地方開始,而且生成器不報StopIteration異常。