日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

day18 迭代器

發(fā)布時(shí)間:2025/4/5 编程问答 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 day18 迭代器 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1,迭代器協(xié)議:對象必須提供一個(gè)next方法,執(zhí)行該方法要么返回迭代中的下一項(xiàng),要么就引起一個(gè)Stoplteration異常,只能往后走不能往前退;

2,可迭代對象:實(shí)現(xiàn)了迭代器協(xié)議的對象(如何實(shí)現(xiàn):對象內(nèi)部定義一個(gè)_iter_()方法)

3,協(xié)議是一種約定,可迭代對象實(shí)現(xiàn)了迭代器協(xié)議,Python的內(nèi)部工具(如for循環(huán),sum,min,max函數(shù)等)使用迭代器協(xié)議訪問對象。

Python中強(qiáng)大的for循環(huán)機(jī)制

for循環(huán)的本質(zhì):循環(huán)所有對象,全都是使用迭代器協(xié)議。

(字符串、列表、元組、字典、集合、文件對象)這些都不是可迭代對象,只不過在for循環(huán)中,調(diào)用了他們內(nèi)部的_iter_方法,把他們變成了可迭代對象,然后for循環(huán)調(diào)用可迭代對象的_next_方法取值,而且for循環(huán)會捕捉StopIteration異常,以終止迭代。

生成器:

可以理解為一種數(shù)據(jù)類型,這種數(shù)據(jù)類型自動(dòng)實(shí)現(xiàn)了迭代器協(xié)議(其他的數(shù)據(jù)類型需要調(diào)用自己內(nèi)置的__iter__方法)所以生成器就是可迭代對象

生成器分類以及在Python中的表現(xiàn)形式:(Python有兩種不同的方式提供生成器)

1.生成器函數(shù):常規(guī)函數(shù)定義,但是,使用yield語句而不是return語句返回結(jié)果。yield語句一次返回一個(gè)結(jié)果,在每個(gè)結(jié)果間,掛起函數(shù)的狀態(tài),以便下次在它離開的地方繼續(xù)執(zhí)行

2.生成器表達(dá)式:類似于列表推導(dǎo),但是,生成器返回按需產(chǎn)生結(jié)果的一個(gè)對象,而不是構(gòu)建一個(gè)結(jié)果列表

#三元表達(dá)式 #name='alex' name= 'wuxiping' res='SB'if name=='alex' else 'shuai' print(res)

總結(jié)

以上是生活随笔為你收集整理的day18 迭代器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。