麻豆黑色丝袜jk制服福利网站-麻豆精品传媒视频观看-麻豆精品传媒一二三区在线视频-麻豆精选传媒4区2021-在线视频99-在线视频a

千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > python生成器表達式

python生成器表達式

來源:千鋒教育
發布人:xqq
時間: 2023-11-07 20:27:59 1699360079

生成器表達式來源于迭代和列表解析的組合,生成器和列表解析類似,但是它使用尖括號而不是方括號

>>>#列表解析生成列表

>>>[x**3forxinrange(5)]

[0,1,8,27,64]

>>>

>>>#生成器表達式

>>>(x**3forxinrange(5))

at0x000000000315F678>

>>>#兩者之間轉換

>>>list(x**3forxinrange(5))

[0,1,8,27,64]

一個迭代既可以被寫成生成器函數,也可以被協程生成器表達式,均支持自動和手動迭代。而且這些生成器只支持一個active迭代,也就是說生成器的迭代器就是生成器本身。

迭代器(迭代就是循環)

迭代器包含有next方法的實現,在正確的范圍內返回期待的數據以及超出范圍后能夠拋出StopIteration的錯誤停止迭代。

我們已經知道,可以直接作用于for循環的數據類型有以下幾種:

一類是集合數據類型,如list,tuple,dict,set,str等

一類是generator,包括生成器和帶yield的generatorfunction

這些可以直接作用于for循環的對象統稱為可迭代對象:Iterable

可以使用isinstance()判斷一個對象是否為可Iterable對象

>>>fromcollectionsimportIterable

>>>isinstance([],Iterable)

True

>>>isinstance({},Iterable)

True

>>>isinstance('abc',Iterable)

True

>>>isinstance((xforxinrange(10)),Iterable)

True

>>>isinstance(100,Iterable)

False

而生成器不但可以作用于for循環,還可以被next()函數不斷調用并返回下一個值,直到最后拋出StopIteration錯誤表示無法繼續返回下一個值了。

所以這里講一下迭代器

一個實現了iter方法的對象是可迭代的,一個實現next方法并且是可迭代的對象是迭代器。

可以被next()函數調用并不斷返回下一個值的對象稱為迭代器:Iterator。

所以一個實現了iter方法和next方法的對象就是迭代器。

可以使用isinstance()判斷一個對象是否是Iterator對象:

>>>fromcollectionsimportIterator

>>>isinstance((xforxinrange(10)),Iterator)

True

>>>isinstance([],Iterator)

False

>>>isinstance({},Iterator)

False

>>>isinstance('abc',Iterator)

False

生成器都是Iterator對象,但list、dict、str雖然是Iterable(可迭代對象),卻不是Iterator(迭代器)。

把list、dict、str等Iterable變成Iterator可以使用iter()函數:

>>>isinstance(iter([]),Iterator)

True

>>>isinstance(iter('abc'),Iterator)

True

你可能會問,為什么list、dict、str等數據類型不是Iterator?

這是因為Python的Iterator對象表示的是一個數據流,Iterator對象可以被next()函數調用并不斷返回下一個數據,直到沒有數據時拋出StopIteration錯誤??梢园堰@個數據流看做是一個有序序列,但我們卻不能提前知道序列的長度,只能不斷通過next()函數實現按需計算下一個數據,所以Iterator的計算是惰性的,只有在需要返回下一個數據時它才會計算。

Iterator甚至可以表示一個無限大的數據流,例如全體自然數。而使用list是永遠不可能存儲全體自然數的。

以上內容為大家介紹了python生成器表達式,希望對大家有所幫助,如果想要了解更多Python相關知識,請關注IT培訓機構:千鋒教育。

tags: python培訓
聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT
主站蜘蛛池模板: 成人永久福利免费观看| 女人扒开裤子让男人捅| 好男人好视频手机在线| 妞干网手机视频| 日本高清免费不卡视频| 美国式禁忌免费看| 四虎影视永久在线精品免费| 黑白高清在线观看| 麻豆免费高清完整版视频 | 日本高清免费不卡在线播放| 香蕉一级视频| 高岭家の二轮花未增删| 夜夜揉揉日日人人视频| 伊人第一路线| 欧美日韩一区二区三区自拍| 亚洲人成电影院在线观看| 中文字幕福利片| 国产特级毛片aaaaaa高清| 又大又硬又爽免费视频| 国产制服丝袜在线| 日本高清乱理论片| 福利电影一区二区| 免费观看女子推理社| 美女把尿口扒开让男人桶| 国产一区福利| 亚洲日韩中文字幕在线播放| 国产123区在线视频观看| 啊灬啊别停灬用力啊岳| 一个人看的www在线观看免费| 中国老太大bbw| 久久激情五月丁香伊人| 护士bd| 中国陆超帅精瘦ktv直男少爷| 538精品在线视频| 一本久久a久久精品亚洲| 欧美日韩三级在线观看| 一个人免费视频观看在线www| 工囗番漫画全彩无遮挡| 久久久99精品免费观看| 日本艳鉧动漫1~6全集在线播放 | 男生女生一起差差差带疼痛|