python---基本知識19之生成器

概念?

是一個特殊的迭代器忙芒,擁有迭代器的特性;主要是為了節(jié)省內(nèi)存空間讳侨,就是用到了才去生成呵萨,才去取值,而不是一下子把所有的都取出來跨跨;

創(chuàng)建方式:

1.通過推導(dǎo)式:其實(shí)就是把列表推導(dǎo)式的[]換成()

l=(x for x in range(10000000))

print(l.__next__())

2.通過生成器函數(shù)潮峦,生成器函數(shù)主要有兩個特點(diǎn),第一是函數(shù)中包含yield語句勇婴,第二是函數(shù)的執(zhí)行結(jié)果就是一個生成器:

def generator():

????print(5)

????yield 6

????print(4)

????yield 1

gen=generator()

print(next(gen))

print(next(gen))

訪問生成器數(shù)據(jù):可以通過next()函數(shù)忱嘹,或者生成器對象的方法:__next__(),以及for in;我們應(yīng)該注意到的是函數(shù)的執(zhí)行結(jié)果是一個生成器耕渴,但是其實(shí)我們在調(diào)用函數(shù)執(zhí)行的時候拘悦,函數(shù)并沒有執(zhí)行,只有當(dāng)訪問生成器數(shù)據(jù)的時候才會執(zhí)行橱脸,并且遇到y(tǒng)ield語句的時候就會被暫停础米;

next(gen)

gen.__next__()

for i in gen:

????print(i)

send()方法:其實(shí)和next()的功能差不多,只不過多了一個功能添诉,就是可以給上一次yield語句指定返回結(jié)果屁桑,這里需要注意一點(diǎn)是上一次,那么如果是第一次執(zhí)行的話栏赴,由于沒有上一次掏颊,所以指定的結(jié)果只能為none;

def generator():

????print(5)

????res= yield 6

????print(res)

????yield 1

gen=generator()

print(gen.send(None))

print(gen.send('a'))

注意事項(xiàng):首先生成器如果碰到return語句,會報StopIteration異常乌叶,因?yàn)閞eturn就是返回盆偿,后面就不會執(zhí)行了,肯定會拋出異常准浴,第二點(diǎn)是生成器和迭代器一樣事扭,只會執(zhí)行一遍,執(zhí)行完畢就會被釋放乐横;

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末求橄,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子葡公,更是在濱河造成了極大的恐慌罐农,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,036評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件催什,死亡現(xiàn)場離奇詭異涵亏,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)蒲凶,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評論 3 395
  • 文/潘曉璐 我一進(jìn)店門气筋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人旋圆,你說我怎么就攤上這事宠默。” “怎么了灵巧?”我有些...
    開封第一講書人閱讀 164,411評論 0 354
  • 文/不壞的土叔 我叫張陵搀矫,是天一觀的道長。 經(jīng)常有香客問我刻肄,道長瓤球,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,622評論 1 293
  • 正文 為了忘掉前任肄方,我火速辦了婚禮,結(jié)果婚禮上蹬癌,老公的妹妹穿的比我還像新娘权她。我一直安慰自己,他們只是感情好逝薪,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,661評論 6 392
  • 文/花漫 我一把揭開白布隅要。 她就那樣靜靜地躺著,像睡著了一般董济。 火紅的嫁衣襯著肌膚如雪步清。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,521評論 1 304
  • 那天,我揣著相機(jī)與錄音廓啊,去河邊找鬼欢搜。 笑死,一個胖子當(dāng)著我的面吹牛谴轮,可吹牛的內(nèi)容都是我干的炒瘟。 我是一名探鬼主播,決...
    沈念sama閱讀 40,288評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼第步,長吁一口氣:“原來是場噩夢啊……” “哼疮装!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起粘都,我...
    開封第一講書人閱讀 39,200評論 0 276
  • 序言:老撾萬榮一對情侶失蹤廓推,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后翩隧,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體樊展,經(jīng)...
    沈念sama閱讀 45,644評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,837評論 3 336
  • 正文 我和宋清朗相戀三年鸽心,在試婚紗的時候發(fā)現(xiàn)自己被綠了滚局。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,953評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡顽频,死狀恐怖藤肢,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情糯景,我是刑警寧澤嘁圈,帶...
    沈念sama閱讀 35,673評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站蟀淮,受9級特大地震影響最住,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜怠惶,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,281評論 3 329
  • 文/蒙蒙 一涨缚、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧策治,春花似錦脓魏、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至履腋,卻和暖如春珊燎,著一層夾襖步出監(jiān)牢的瞬間惭嚣,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評論 1 269
  • 我被黑心中介騙來泰國打工悔政, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留晚吞,地道東北人。 一個月前我還...
    沈念sama閱讀 48,119評論 3 370
  • 正文 我出身青樓卓箫,卻偏偏與公主長得像载矿,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子烹卒,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,901評論 2 355

推薦閱讀更多精彩內(nèi)容