人人都能學(xué)會(huì)的python編程教程15:高級(jí)特性2

生成器

如果你想要一百萬個(gè)數(shù),而這些數(shù)里只有一百個(gè)數(shù)是你經(jīng)常要用的惜纸,剩下的都幾乎不怎么會(huì)用到叶撒,那么如果直接把這一百萬個(gè)數(shù)全部放在list中是不明智的因?yàn)檫@會(huì)浪費(fèi)較多存儲(chǔ)空間,生成器就是為了解決這個(gè)問題而生的耐版。

如果列表元素可以按照某種算法推算出來祠够,那我們是否可以在循環(huán)的過程中不斷推算出后續(xù)的元素呢?這樣就不必創(chuàng)建完整的list粪牲,從而節(jié)省大量的空間古瓤。在Python中,這種一邊循環(huán)一邊計(jì)算的機(jī)制腺阳,稱為生成器:generator落君。

生成器表達(dá)式: 通列表解析語法,只不過把列表解析的[]換成()

寶寶都能學(xué)會(huì)的python編程教程15:高級(jí)特性2

我們可以直接打印出list的每一個(gè)元素亭引,但我們?cè)趺创蛴〕鰃enerator的每一個(gè)元素呢绎速?

如果要一個(gè)一個(gè)打印出來,可以通過next()函數(shù)獲得generator的下一個(gè)返回值:

寶寶都能學(xué)會(huì)的python編程教程15:高級(jí)特性2

當(dāng)然這種獲取值的方法很笨痛侍,所以我們一般用循環(huán)來迭代生成器的對(duì)象

寶寶都能學(xué)會(huì)的python編程教程15:高級(jí)特性2

迭代器

前面我們已經(jīng)學(xué)過了for循環(huán)朝氓,我們知道for循環(huán)可以遍歷list魔市、tuple、dict赵哲、set待德、str和生成器。

這些可以直接作用于for循環(huán)的對(duì)象統(tǒng)稱為可迭代對(duì)象:Iterable枫夺。

可以使用isinstance()判斷一個(gè)對(duì)象是否是Iterable對(duì)象:

>>> from collections import Iterable
>>> isinstance([], Iterable)
> True
>>> isinstance({}, Iterable)
> True
>>> isinstance('abc', Iterable)
> True
>>> isinstance((x for x in range(10)), Iterable)
> True
>>> isinstance(100, Iterable)
> False

凡是可作用于for循環(huán)的對(duì)象都是Iterable類型将宪;

凡是可作用于next()函數(shù)的對(duì)象都是Iterator類型,它們表示一個(gè)惰性計(jì)算的序列橡庞;

集合數(shù)據(jù)類型如list较坛、dict、str等是Iterable但不是Iterator扒最,不過可以通過iter()函數(shù)獲得一個(gè)Iterator對(duì)象丑勤。

Python的for循環(huán)本質(zhì)上就是通過不斷調(diào)用next()函數(shù)實(shí)現(xiàn)的,例如:

寶寶都能學(xué)會(huì)的python編程教程15:高級(jí)特性2
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末吧趣,一起剝皮案震驚了整個(gè)濱河市法竞,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌强挫,老刑警劉巖岔霸,帶你破解...
    沈念sama閱讀 222,104評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異俯渤,居然都是意外死亡呆细,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門八匠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來絮爷,“玉大人,你說我怎么就攤上這事梨树÷运” “怎么了?”我有些...
    開封第一講書人閱讀 168,697評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵劝萤,是天一觀的道長。 經(jīng)常有香客問我慎璧,道長床嫌,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,836評(píng)論 1 298
  • 正文 為了忘掉前任胸私,我火速辦了婚禮厌处,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘岁疼。我一直安慰自己阔涉,他們只是感情好缆娃,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,851評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著瑰排,像睡著了一般贯要。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上椭住,一...
    開封第一講書人閱讀 52,441評(píng)論 1 310
  • 那天崇渗,我揣著相機(jī)與錄音,去河邊找鬼京郑。 笑死宅广,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的些举。 我是一名探鬼主播跟狱,決...
    沈念sama閱讀 40,992評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼户魏!你這毒婦竟也來了驶臊?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,899評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤绪抛,失蹤者是張志新(化名)和其女友劉穎资铡,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體幢码,經(jīng)...
    沈念sama閱讀 46,457評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡笤休,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,529評(píng)論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了症副。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片店雅。...
    茶點(diǎn)故事閱讀 40,664評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖贞铣,靈堂內(nèi)的尸體忽然破棺而出闹啦,到底是詐尸還是另有隱情,我是刑警寧澤辕坝,帶...
    沈念sama閱讀 36,346評(píng)論 5 350
  • 正文 年R本政府宣布窍奋,位于F島的核電站,受9級(jí)特大地震影響酱畅,放射性物質(zhì)發(fā)生泄漏琳袄。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,025評(píng)論 3 334
  • 文/蒙蒙 一纺酸、第九天 我趴在偏房一處隱蔽的房頂上張望窖逗。 院中可真熱鬧,春花似錦餐蔬、人聲如沸碎紊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽仗考。三九已至音同,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間痴鳄,已是汗流浹背瘟斜。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評(píng)論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留痪寻,地道東北人螺句。 一個(gè)月前我還...
    沈念sama閱讀 49,081評(píng)論 3 377
  • 正文 我出身青樓,卻偏偏與公主長得像橡类,于是被迫代替她去往敵國和親蛇尚。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,675評(píng)論 2 359

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

  • 1.1==顾画,is的使用 ·is是比較兩個(gè)引用是否指向了同一個(gè)對(duì)象(引用比較)取劫。 ·==是比較兩個(gè)對(duì)象是否相等。 1...
    TENG書閱讀 733評(píng)論 0 0
  • Python 是一種相當(dāng)高級(jí)的語言研侣,通過 Python 解釋器把符合語法的程序代碼轉(zhuǎn)換成 CPU 能夠執(zhí)行的機(jī)器碼...
    Python程序媛閱讀 1,914評(píng)論 0 3
  • 在python中谱邪,代碼不是越多好,而是越少越好庶诡;代碼不是越復(fù)雜越好惦银,而是越簡單越好;代碼越少末誓,開發(fā)效率越高扯俱! 1 ...
    祐吢房_2c9a閱讀 296評(píng)論 1 1
  • 切片 對(duì)于取指定索引范圍的操作,用循環(huán)十分繁瑣喇澡,因此迅栅,Python提供了切片(Slice)操作符,能大大簡化這種操...
    抽象語法樹閱讀 286評(píng)論 0 0
  • 葉子寫的文章《22歲賺足20萬,廢材的逆襲之路》呕屎,讀來灑脫勁道宪萄,利落順暢。觀點(diǎn)聚焦榨惰,故事生動(dòng),言之有物静汤,畫龍點(diǎn)睛琅催。...
    哈佛媽媽親子園閱讀 504評(píng)論 14 7