迭代器開始展開yield關(guān)鍵詞的相關(guān)自資料 ,需要的朋友可以參考一下" />

最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python?yield?關(guān)鍵詞,

 更新時(shí)間:2021年12月14日 08:38:32   作者:桀桀  
這篇文章主要介紹了Python?yield?關(guān)鍵詞,要理解yield的作用,你必須理解生成器是什么。在理解生成器之前,必須先理解迭代器。下面文章我們就先從
迭代器開始展開yield關(guān)鍵詞的相關(guān)自資料 ,需要的朋友可以參考一下

1.迭代器

當(dāng)您創(chuàng)建一個(gè)列表時(shí),你可以逐個(gè)讀取它的項(xiàng)。逐項(xiàng)讀取其項(xiàng)稱為迭代:

mylist是一個(gè)可迭代的對(duì)象。當(dāng)你使用列表解析式時(shí),你創(chuàng)建了一個(gè)列表,因此也是一個(gè)迭代器:

所有你可以用"for... in ...."都是迭代器,包括列表、字符串、文件…等等。

這些迭代器非常方便,因?yàn)槟憧梢噪S心所欲地讀取它們,但是你將所有的值都存儲(chǔ)在內(nèi)存中,當(dāng)你有很多值時(shí),這就非常浪費(fèi)內(nèi)存了。

為了解決這樣的問題,Python有了生成器的概念。

2.生成器

生成器是迭代器,這種迭代器只能迭代一次。生成器不會(huì)將所有值都存儲(chǔ)在內(nèi)存中,它們會(huì)動(dòng)態(tài)生成這些值:

它和列表解析式是類似的,只是用()代替了[]。但是,你不能在mygenerator中對(duì)i執(zhí)行第二次,因?yàn)樯善髦荒苁褂靡淮危核黳rint(0),然后忘記它,print(1) ,最后是4。

3.Yield

yield是一個(gè)與return類似的關(guān)鍵字,只是函數(shù)將返回一個(gè)生成器。

認(rèn)真看完下面這個(gè)例子,我們就能完全明白。

函數(shù)將返回一組只需要讀取一次的值。如果你能將這個(gè)特性理解清楚,并將其應(yīng)用到你的代碼中,可能可以極大地提高性能,下次我們將介紹在什么時(shí)候該用它。

請(qǐng)注意示例中的第6行,在調(diào)用函數(shù)時(shí),在函數(shù)體中編寫的代碼不會(huì)運(yùn)行。函數(shù)只返回生成器對(duì)象,可別忘了這個(gè)重點(diǎn)。

最后,你的代碼將從每次使用生成器時(shí)停止的地方繼續(xù)。因此示例中第二次使用生成器的時(shí)候,我們的生成器已經(jīng)完全沒有值了。

所以最核心的邏輯如下:

  • for函數(shù)第一次調(diào)用從函數(shù)創(chuàng)建的生成器對(duì)象時(shí),它將從頭運(yùn)行函數(shù)中的代碼,直到達(dá)到yield,返回循環(huán)的第一個(gè)值。
  • 隨后的調(diào)用都將再次運(yùn)行你在函數(shù)中編寫的循環(huán),并yield返回下一個(gè)值,直到?jīng)]有要返回的值為止,就如我們上面的例子所示

到此這篇關(guān)于Python yield 關(guān)鍵詞,的文章就介紹到這了,更多相關(guān)Python yield 關(guān)鍵詞內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python中如何用time方法生成當(dāng)前時(shí)間年月日時(shí)分秒

    python中如何用time方法生成當(dāng)前時(shí)間年月日時(shí)分秒

    這篇文章主要給大家介紹了關(guān)于python中如何用time方法生成當(dāng)前時(shí)間年月日時(shí)分秒的相關(guān)資料,在Python中與時(shí)間處理有關(guān)的模塊就包括:time,datetime以及calendar,Time模塊用以取得系統(tǒng)時(shí)間相關(guān)的信息和時(shí)間的格式化等操作,需要的朋友可以參考下
    2023-08-08
  • python opencv之SIFT算法示例

    python opencv之SIFT算法示例

    這篇文章主要介紹了python opencv之SIFT算法示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-02-02
  • 13個(gè)簡便高效的Python腳本分享

    13個(gè)簡便高效的Python腳本分享

    Python是頂級(jí)編程語言之一,它具有許多程序員從未使用過的許多隱藏功能。在這篇博客中,將和大家分享一下你可能從未使用過的13個(gè)Python腳本,感興趣的可以學(xué)習(xí)一下
    2023-01-01
  • Python聚類算法之基本K均值實(shí)例詳解

    Python聚類算法之基本K均值實(shí)例詳解

    這篇文章主要介紹了Python聚類算法之基本K均值運(yùn)算技巧,結(jié)合實(shí)例形式較為詳細(xì)的分析了基本K均值的原理與相關(guān)實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-11-11
  • Python設(shè)置在shell腳本中自動(dòng)補(bǔ)全功能的方法

    Python設(shè)置在shell腳本中自動(dòng)補(bǔ)全功能的方法

    今天小編就為大家分享一篇Python設(shè)置在shell腳本中自動(dòng)補(bǔ)全功能的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • python如何查找列表中元素的位置

    python如何查找列表中元素的位置

    這篇文章主要介紹了python如何查找列表中元素的位置,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • 使用pygame寫一個(gè)古詩詞填空通關(guān)游戲

    使用pygame寫一個(gè)古詩詞填空通關(guān)游戲

    這篇文章主要介紹了使用pygame寫一個(gè)古詩詞填空通關(guān)游戲,之前寫的詩詞填空的游戲支持python2,現(xiàn)在對(duì)程序進(jìn)行了修改,兼容支持python2和python3,需要的朋友可以參考下
    2019-12-12
  • Python使用asyncio標(biāo)準(zhǔn)庫對(duì)異步IO的支持

    Python使用asyncio標(biāo)準(zhǔn)庫對(duì)異步IO的支持

    Python中,所有程序的執(zhí)行都是單線程的,但可同時(shí)執(zhí)行多個(gè)任務(wù),不同的任務(wù)被時(shí)間循環(huán)(Event Loop)控制及調(diào)度,Asyncio是Python并發(fā)編程的一種實(shí)現(xiàn)方式;是Python 3.4版本引入的標(biāo)準(zhǔn)庫,直接內(nèi)置了對(duì)異步IO的支持
    2023-11-11
  • 基于Python實(shí)現(xiàn)牛牛套圈小游戲的示例代碼

    基于Python實(shí)現(xiàn)牛牛套圈小游戲的示例代碼

    “幸運(yùn)牛牛套圈圈”套住歡樂,圈住幸福,等你來挑戰(zhàn)!這篇文章小編主要為大家介紹一款基于Python實(shí)現(xiàn)牛牛套圈小游戲,感興趣的小伙伴可以了解一下
    2023-02-02
  • 解析PyCharm集成GitLab代碼倉的問題

    解析PyCharm集成GitLab代碼倉的問題

    這篇文章主要介紹了PyCharm集成GitLab代碼倉的相關(guān)知識(shí),本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-09-09

最新評(píng)論

扶风县| 洞口县| 鄂伦春自治旗| 桃江县| 六枝特区| 仙桃市| 夏河县| 大余县| 丰台区| 府谷县| 磐石市| 增城市| 共和县| 武夷山市| 富源县| 玉环县| 灵武市| 常熟市| 同心县| 西盟| 咸宁市| 民丰县| 读书| 繁峙县| 永安市| 武陟县| 资溪县| 博兴县| 五河县| 海安县| 滦平县| 垣曲县| 巴林右旗| 山西省| 临潭县| 曲阳县| 阿瓦提县| 宁安市| 昔阳县| 清原| 崇左市|