回顧:
列表推導式
image.png
---------------》-----------》---------------
1.迭代器和生成器
1)迭代器
迭代器對象要求支持迭代器協(xié)議的對象砂豌,在Python中,支持迭代器協(xié)議就是實現(xiàn)對象的iter()和next()方法光督。其中iter()方法返回迭代器對象本身阳距;next()方法返回容器的下一個元素,在結(jié)尾時引發(fā)StopIteration異常结借。
可以直接作用于for循環(huán)的對象統(tǒng)稱為可迭代對象:Iterable(可迭代對象)筐摘。
list、dict咖熟、str雖然是Iterable,卻不是Iterator咽斧。
把list、dict宛逗、str等Iterable變成Iterator可以使用iter函數(shù)或者iter()函數(shù);
image.png
2.生成器generator
在Python中,使用生成器可以很方便的支持迭代器協(xié)議。在 Python 中,使用了 yield 的函數(shù)被稱為生成器(generator)喉恋。跟普通函數(shù)不同的是徘意,生成器是一個返回迭代器的函數(shù),只能用于迭代操作勤讽,更簡單點理解生成器就是一個迭代器巢墅。在調(diào)用生成器運行的過程中芹彬,每次遇到 yield 時函數(shù)會暫停并保存當前所有的運行信息,返回yield的值。并在下一次執(zhí)行 next()方法時從當前位置繼續(xù)運行瓦宜。
image.png
image.png
模塊假夺、包
image.png