Python列表推導(dǎo)式與生成器

愿你一直充滿無限的潛力


列表推導(dǎo)式

>>> [x+1 for x in range(10) ]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

從上面的代碼可以看出,列表推導(dǎo)式是生成一個列表坠宴。

生成器

>>> g=(x+1 for x in range(10))
>>> g
<generator object <genexpr> at 0x7f3af91b7570>
>>> next(g)
1
>>> next(g)
2
>>> next(g)
3
>>> next(g)
4
>>> next(g)
5
>>> next(g)
6
>>> next(g)
7
>>> next(g)
8
>>> next(g)
9
>>> next(g)
10
>>> next(g)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
StopIteration
>>>

從上面的代碼可以看出,生成器的形式和列表推導(dǎo)式差不多绷旗,只是括號的不同喜鼓。

本質(zhì)區(qū)別是列表推導(dǎo)式是一次性生成,而生成器是通過相應(yīng)的算法推導(dǎo)出來的值衔肢,在數(shù)據(jù)量較大的時候庄岖,你不可能一次性生成那么大的列表,生成器是最好的選擇角骤。

例如:用生成器產(chǎn)生斐波拉契數(shù)列

def fibs(max):
    n,a,b=0,0,1
    while n < max:
        yield b
        a,b = b,a+b
        n+=1

for n in fibs(6):
    print(n)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末隅忿,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子邦尊,更是在濱河造成了極大的恐慌背桐,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,194評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蝉揍,死亡現(xiàn)場離奇詭異链峭,居然都是意外死亡,警方通過查閱死者的電腦和手機又沾,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評論 2 385
  • 文/潘曉璐 我一進店門弊仪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來熙卡,“玉大人,你說我怎么就攤上這事励饵≡偕牛” “怎么了?”我有些...
    開封第一講書人閱讀 156,780評論 0 346
  • 文/不壞的土叔 我叫張陵曲横,是天一觀的道長喂柒。 經(jīng)常有香客問我,道長禾嫉,這世上最難降的妖魔是什么灾杰? 我笑而不...
    開封第一講書人閱讀 56,388評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮熙参,結(jié)果婚禮上艳吠,老公的妹妹穿的比我還像新娘。我一直安慰自己孽椰,他們只是感情好昭娩,可當(dāng)我...
    茶點故事閱讀 65,430評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著黍匾,像睡著了一般栏渺。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上锐涯,一...
    開封第一講書人閱讀 49,764評論 1 290
  • 那天磕诊,我揣著相機與錄音,去河邊找鬼纹腌。 笑死霎终,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的升薯。 我是一名探鬼主播莱褒,決...
    沈念sama閱讀 38,907評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼涎劈!你這毒婦竟也來了广凸?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,679評論 0 266
  • 序言:老撾萬榮一對情侶失蹤责语,失蹤者是張志新(化名)和其女友劉穎炮障,沒想到半個月后目派,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體坤候,經(jīng)...
    沈念sama閱讀 44,122評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,459評論 2 325
  • 正文 我和宋清朗相戀三年企蹭,在試婚紗的時候發(fā)現(xiàn)自己被綠了白筹。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片智末。...
    茶點故事閱讀 38,605評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖徒河,靈堂內(nèi)的尸體忽然破棺而出系馆,到底是詐尸還是另有隱情,我是刑警寧澤顽照,帶...
    沈念sama閱讀 34,270評論 4 329
  • 正文 年R本政府宣布由蘑,位于F島的核電站,受9級特大地震影響代兵,放射性物質(zhì)發(fā)生泄漏尼酿。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,867評論 3 312
  • 文/蒙蒙 一植影、第九天 我趴在偏房一處隱蔽的房頂上張望裳擎。 院中可真熱鬧,春花似錦思币、人聲如沸鹿响。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽惶我。三九已至,卻和暖如春博投,著一層夾襖步出監(jiān)牢的瞬間指孤,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評論 1 265
  • 我被黑心中介騙來泰國打工贬堵, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留恃轩,地道東北人。 一個月前我還...
    沈念sama閱讀 46,297評論 2 360
  • 正文 我出身青樓黎做,卻偏偏與公主長得像叉跛,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子蒸殿,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,472評論 2 348

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

  • 生成器(Generator)可以說是在 ES2015 中最為強悍的一個新特性筷厘,因為生成器是涉及到 ECMAScri...
    Will_Wen_Gunn閱讀 4,720評論 0 9
  • 1. 迭代器協(xié)議 由于生成器自動實現(xiàn)了迭代器協(xié)議,而迭代器協(xié)議對很多人來說宏所,也是一個較為抽象的概念酥艳。所以,為了更好...
    KavinDotG閱讀 328評論 0 1
  • [TOC] 迭代器 為什么要用迭代器爬骤? 提供了一種不依賴索引的取值方式充石,使一些不具有索引屬性的對象也能遍歷輸出相比...
    派大星的喜悲沒人看見閱讀 591評論 0 0
  • 昨晚輾轉(zhuǎn)難眠,好不容易在凌晨昏昏睡去霞玄,但是夜里卻突然醒來幾次骤铃,五點多的時候再也無心睡眠拉岁,索性翻起了公眾號的文章。刷...
    簡約Dr閱讀 320評論 4 0
  • 效果圖展示 html代碼 css樣式body {background: #362e40;} 這樣就可以寫出帶邊框的...
    小白的xiaobai閱讀 4,711評論 0 0