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

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

Python?yield?關鍵詞,

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

1.迭代器

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

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

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

這些迭代器非常方便,因為你可以隨心所欲地讀取它們,但是你將所有的值都存儲在內存中,當你有很多值時,這就非常浪費內存了。

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

2.生成器

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

它和列表解析式是類似的,只是用()代替了[]。但是,你不能在mygenerator中對i執(zhí)行第二次,因為生成器只能使用一次:它print(0),然后忘記它,print(1) ,最后是4。

3.Yield

yield是一個與return類似的關鍵字,只是函數將返回一個生成器。

認真看完下面這個例子,我們就能完全明白。

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

請注意示例中的第6行,在調用函數時,在函數體中編寫的代碼不會運行。函數只返回生成器對象,可別忘了這個重點。

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

所以最核心的邏輯如下:

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

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

相關文章

  • python中如何用time方法生成當前時間年月日時分秒

    python中如何用time方法生成當前時間年月日時分秒

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

    python opencv之SIFT算法示例

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

    13個簡便高效的Python腳本分享

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

    Python聚類算法之基本K均值實例詳解

    這篇文章主要介紹了Python聚類算法之基本K均值運算技巧,結合實例形式較為詳細的分析了基本K均值的原理與相關實現技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-11-11
  • Python設置在shell腳本中自動補全功能的方法

    Python設置在shell腳本中自動補全功能的方法

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

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

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

    使用pygame寫一個古詩詞填空通關游戲

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

    Python使用asyncio標準庫對異步IO的支持

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

    基于Python實現牛牛套圈小游戲的示例代碼

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

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

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

最新評論

大洼县| 黑龙江省| 乐业县| 丰原市| 铜山县| 新竹县| 宝山区| 荃湾区| 垦利县| 高尔夫| 灵璧县| 班戈县| 东乡县| 文山县| 泰兴市| 攀枝花市| 西和县| 株洲县| 崇文区| 南开区| 磐安县| 登封市| 富民县| 双牌县| 星子县| 根河市| 古浪县| 天峻县| 新宁县| 县级市| 井陉县| 襄樊市| 介休市| 天等县| 永和县| 商洛市| 红安县| 太原市| 麻城市| 临沧市| 德钦县|