python学习19--生成器
1.生成器作用
函數(shù)可以暫停或者掛起,并在需要的時(shí)候從程序離開(kāi)的地方繼續(xù)或者重新開(kāi)始。
2.標(biāo)志:
在函數(shù)中定義有yield語(yǔ)句。需要注意的是:每一個(gè)生成器函數(shù)又相當(dāng)于一個(gè)迭代器。
每一個(gè)yield相當(dāng)于return,迭代返回。可以使用next()函數(shù)進(jìn)行依次訪問(wèn)每一個(gè)yield語(yǔ)句。
3.列表推導(dǎo)式:
a=[i for i in range(100) if not(i%2) and i&3]
則:a=[2,4,8....]
字典(大括號(hào)加冒號(hào)標(biāo)志,沒(méi)有冒號(hào)是一個(gè)集合)推導(dǎo)式:
b={i:i%2 for i in range(10)}
b=[0:true,1:false...]
集合推導(dǎo)式:
c={i for i in [1,1,2,3,4,5,6,1,2,3]}
字符串迭代器:
沒(méi)有。因?yàn)樵陔p引號(hào)內(nèi)就是一個(gè)字符串,不存在邏輯關(guān)系
元祖生成器:
e=(i for i in range(10))
則:e不打印數(shù)據(jù)。此時(shí)e為一個(gè)生成器,即此該公式為生成器推導(dǎo)式。
注意:如果將生成器推導(dǎo)式作為函數(shù)的參數(shù),不需要加括號(hào)(也可加)即可,即:sum(i for i in range(10))
轉(zhuǎn)載于:https://www.cnblogs.com/zjh225901/p/6347589.html
總結(jié)
以上是生活随笔為你收集整理的python学习19--生成器的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 数组的各种方法
- 下一篇: Python 【第十三章】 Django