python 迭代器,生成器

迭代

Python 的迭代是通過(guò)for ... in 來(lái)完成的狂男。 只要是可迭代對(duì)象综看,都可以用python進(jìn)行迭代。如 dict,str,tuple

d = {'a':1, 'b':2, 'd':4, 'c':3}
for key in d:
    print(key)
s = 'hello'
for i in s:
    print(i)

列表生成式

列表生成式是Python內(nèi)置的可以用來(lái)創(chuàng)建list 的生成式岖食。

>>>list(range(1,5))
[1,2,3,4]
>>>[x*x for x in range(1,5)]
[1,4,9,16]
>>>d = {'x':1, 'y':2, 'z':3}
>>>for k,v  in d.items():
>>>    print(k, '=', v)
x = 1
y = 2
z = 3

生成器

通過(guò)列表生成式红碑,可以直接創(chuàng)建一個(gè)列表,但會(huì)受到內(nèi)存限制泡垃。生成器(generator)是一種在循環(huán)過(guò)程中不斷推算后續(xù)元素的機(jī)制析珊。

>>>g = (x*x for x in range(1,5))
>>>for n in g:
>>>    print(n)
1
4
9
16
>>>g
<generator object <genexpr> at 0x000000000F1A6660>

迭代器

迭代器(Iterator)是指可以被next()函數(shù)不斷調(diào)用并返回下一個(gè)值的對(duì)象。
可以通過(guò)isinstance()判斷一個(gè)對(duì)象是否是Iterator()對(duì)象蔑穴。

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

tuple,dict,str是可迭代對(duì)象(iterable)忠寻,但不是迭代器(iterator)
iter()函數(shù)可以將tuple,dict,striterable變?yōu)?code>iterator

>>>from collections.abc import Tterator
>>>isinstance(iter([]), Iterator)
True
>>>isinstance(iter('abc'), Iterator)
True
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市存和,隨后出現(xiàn)的幾起案子奕剃,更是在濱河造成了極大的恐慌,老刑警劉巖捐腿,帶你破解...
    沈念sama閱讀 219,539評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件纵朋,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡茄袖,警方通過(guò)查閱死者的電腦和手機(jī)操软,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評(píng)論 3 396
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)绞佩,“玉大人寺鸥,你說(shuō)我怎么就攤上這事∑飞剑” “怎么了胆建?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,871評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)肘交。 經(jīng)常有香客問(wèn)我笆载,道長(zhǎng),這世上最難降的妖魔是什么涯呻? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,963評(píng)論 1 295
  • 正文 為了忘掉前任凉驻,我火速辦了婚禮,結(jié)果婚禮上复罐,老公的妹妹穿的比我還像新娘涝登。我一直安慰自己,他們只是感情好效诅,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,984評(píng)論 6 393
  • 文/花漫 我一把揭開(kāi)白布胀滚。 她就那樣靜靜地躺著趟济,像睡著了一般。 火紅的嫁衣襯著肌膚如雪咽笼。 梳的紋絲不亂的頭發(fā)上顷编,一...
    開(kāi)封第一講書(shū)人閱讀 51,763評(píng)論 1 307
  • 那天,我揣著相機(jī)與錄音剑刑,去河邊找鬼媳纬。 笑死,一個(gè)胖子當(dāng)著我的面吹牛施掏,可吹牛的內(nèi)容都是我干的钮惠。 我是一名探鬼主播,決...
    沈念sama閱讀 40,468評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼其监,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼萌腿!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起抖苦,我...
    開(kāi)封第一講書(shū)人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤毁菱,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后锌历,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體贮庞,經(jīng)...
    沈念sama閱讀 45,850評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,002評(píng)論 3 338
  • 正文 我和宋清朗相戀三年究西,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了窗慎。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,144評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡卤材,死狀恐怖遮斥,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情扇丛,我是刑警寧澤术吗,帶...
    沈念sama閱讀 35,823評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站帆精,受9級(jí)特大地震影響较屿,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜卓练,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,483評(píng)論 3 331
  • 文/蒙蒙 一隘蝎、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧襟企,春花似錦嘱么、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,026評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)辉川。三九已至,卻和暖如春拴测,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背府蛇。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,150評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工集索, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人汇跨。 一個(gè)月前我還...
    沈念sama閱讀 48,415評(píng)論 3 373
  • 正文 我出身青樓务荆,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親穷遂。 傳聞我的和親對(duì)象是個(gè)殘疾皇子函匕,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,092評(píng)論 2 355

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

  • ??在學(xué)習(xí)python數(shù)據(jù)結(jié)構(gòu)的過(guò)程中,可迭代對(duì)象蚪黑,迭代器盅惜,生成器這些概念參雜在一起,難免讓初學(xué)者一頭霧水忌穿,今天就...
    liangruifeng閱讀 299評(píng)論 0 2
  • 迭代器 迭代器在 Python 2.2 版本中被加入, 它為類序列對(duì)象提供了一個(gè)類序列的接口掠剑。 Python 的迭...
    派派森森閱讀 617評(píng)論 0 8
  • 迭代 如果給定一個(gè)list或tuple屈芜,我們可以通過(guò)for循環(huán)來(lái)遍歷這個(gè)list或tuple,這種遍歷我們稱為迭代...
    Mr_Bluyee閱讀 985評(píng)論 0 1
  • 一張圖概覽: container:容器 容器是一種把多個(gè)元素組織在一起的數(shù)據(jù)結(jié)構(gòu),容器中的元素可以逐個(gè)地迭代獲取眠寿,...
    filterc閱讀 1,209評(píng)論 0 4
  • 91躬翁,我想要每天醒來(lái),的第一件事不是上班澜公,而是跑步姆另,鍛煉身體。 2.我不想打工坟乾,我想創(chuàng)業(yè)迹辐,自己做老板。 3.讀書(shū)不...
    靜靜的長(zhǎng)大閱讀 174評(píng)論 0 1