以下類型:str/list/tuple/dict/set/for都是叠代對象。
要將類視為叠代器,我們需要在類中實現兩個方法:iter()和next()。
Zip生成列表,生成字典。
zip()函數以壹系列叠代的對象為參數,將不同對象中對應的元素打包成壹個元組,返回由這些元組組成的列表。
enumerate()函數用於將可遍歷的數據對象(如列表、元組或字符串)組合成壹個索引序列,同時列出數據和數據下標,壹般用於for循環中。
Enumerate(seq,[start=0]),返回枚舉的對象。
6、
'''
Yield,首先可以看作是return,程序返回某個值,返回後程序不會運行下來。
生成器的壹部分:帶yield的函數是真正的叠代器。
'''
適用於遍歷龐大或無限的集合,例如幾個G文件:
對於不能隨機訪問的數據結構:set(),叠代器是訪問元素的唯壹方式。
節省內存:叠代器不會壹次性將所有元素加載到內存中,也沒有必要提前準備好整個叠代過程中的所有元素。只有叠代到壹個元素時,元素才能被計算,在此之前或之後,元素都不能存在或被銷毀。
關於叠代器,更多實際應用,歡迎補充~