色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Python yield的作用

科技綠洲 ? 來源:Python實用寶典 ? 作者:Python實用寶典 ? 2023-11-02 11:21 ? 次閱讀

要理解yield的作用,你必須理解生成器是什么。在理解生成器之前,必須先理解迭代器。

迭代器

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

圖片

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

圖片

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

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

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

生成器

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

圖片

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

Yield

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

認真看完下面這個例子,你應該能完全明白。

圖片

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

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

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

所以最核心的邏輯如下:

  1. for函數(shù)第一次調(diào)用從函數(shù)創(chuàng)建的生成器對象時,它將從頭運行函數(shù)中的代碼,直到達到y(tǒng)ield,返回循環(huán)的第一個值。
  2. 隨后的調(diào)用都將再次運行你在函數(shù)中編寫的循環(huán),并yield返回下一個值,直到?jīng)]有要返回的值為止,就如我們上面的例子所示。
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 存儲
    +關(guān)注

    關(guān)注

    13

    文章

    4332

    瀏覽量

    85956
  • 生成器
    +關(guān)注

    關(guān)注

    7

    文章

    317

    瀏覽量

    21054
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4800

    瀏覽量

    84821
收藏 人收藏

    評論

    相關(guān)推薦

    Pythonyield表達式及其批量獲得minibatches的應用

    Python 小談 yield 表達式及其批量獲得 minibatches 的應用
    發(fā)表于 05-21 08:20

    Python虛擬環(huán)境的作用和搭建方法

    Python虛擬環(huán)境的作用及搭建方法
    發(fā)表于 06-08 07:32

    Python在實時嵌入式系統(tǒng)中有什么作用

    如何用Python語言去控制單片機?Python在實時嵌入式系統(tǒng)中有什么作用
    發(fā)表于 07-14 06:33

    python生成器

    python生成器1. 什么是生成器?生成器(英文名 Generator ),是一個可以像迭代器那樣使用for循環(huán)來獲取元素的函數(shù)。生成器的出現(xiàn)(Python 2.2 +),實現(xiàn)了延時計算,從而緩解
    發(fā)表于 02-24 15:56

    python變量的作用

    python變量的作用域1. 作用Python作用域可以分為四種:L (Local) 局部作用
    發(fā)表于 03-03 16:50

    yield 開始入門python協(xié)程

    簡單介紹 yield本篇文章會先向你介紹一個陌生的 Python 關(guān)鍵詞,他和 return 就像一對新兄弟,有相似之處,又各有不同。相似的是:yield 和 return 都可以在一個函數(shù)里將值
    發(fā)表于 03-16 16:21

    python6個值得玩味的代碼

    選取了 6 個自己認為值得玩味的 python 代碼,希望對正在學習 python 的你有所幫助。1、類有兩個方法,一個是 __new__,一個是 __init__,有什么區(qū)別,哪個會先執(zhí)行呢
    發(fā)表于 03-30 17:32

    Python教程之Python中的yield關(guān)鍵字能做什么詳細程序說明

    要理解yield做了什么,就必須明白生成器(generators)為何物,而在明白生成器之前還要知道迭代器(iterables)。
    發(fā)表于 12-25 11:21 ?12次下載
    <b class='flag-5'>Python</b>教程之<b class='flag-5'>Python</b>中的<b class='flag-5'>yield</b>關(guān)鍵字能做什么詳細程序說明

    python變量的作用

    python變量的作用域 1. 作用Python作用域可以分為四種: L (Local) 局部作用
    的頭像 發(fā)表于 03-03 16:50 ?1633次閱讀

    yield開始入門python協(xié)程

    本篇文章會先向你介紹一個陌生的 Python 關(guān)鍵詞,他和 return 就像一對新兄弟,有相似之處,又各有不同。
    的頭像 發(fā)表于 03-16 16:20 ?1022次閱讀

    通過例子由淺入深的理解yield協(xié)程

    send:send() 方法致使協(xié)程前進到下一個yield 語句,另外,生成器可以作為協(xié)程使用
    的頭像 發(fā)表于 08-23 11:12 ?2040次閱讀

    python語言之使用async關(guān)鍵字來定義函數(shù)

    早期的協(xié)程是用yield來實現(xiàn)的,但是代碼特別難懂, python3.5之后的版本, 使用 async 關(guān)鍵字來定義的函數(shù)。調(diào)用該函數(shù),會返回一個協(xié)程對象
    的頭像 發(fā)表于 08-24 11:12 ?2768次閱讀

    python語言之a(chǎn)wait和yield from的對比

    不同點:yield from 后面的值,要么是生成器,要么是最終為可迭代對象,而await后面只能跟async開頭的方法
    的頭像 發(fā)表于 08-24 12:02 ?2622次閱讀

    如何學會 Python yield 關(guān)鍵詞

    要理解yield作用,你必須理解生成器是什么。在理解生成器之前,必須先理解迭代器。 1.迭代器 當您創(chuàng)建一個列表時,你可以逐個讀取它的項。逐項讀取其項稱為迭代: mylist是一個可迭代的對象
    的頭像 發(fā)表于 10-31 11:06 ?336次閱讀
    如何學會 <b class='flag-5'>Python</b> <b class='flag-5'>yield</b> 關(guān)鍵詞

    Python中元類的作用

    1.什么是類 在理解元類之前,我們必須先掌握Python中的類(class)。 和大多數(shù)語言一樣,Python中的類知識用來描述如何“生成一個對象”: 但是,在Python中,類不僅能用來描述
    的頭像 發(fā)表于 11-02 11:18 ?552次閱讀
    <b class='flag-5'>Python</b>中元類的<b class='flag-5'>作用</b>
    主站蜘蛛池模板: 国产 亚洲 中文字幕 久久网| 成 人 色综合| 久久久96人妻无码精品蜜桃| 99久久网站| 亚洲一卡久久4卡5卡6卡7卡| 日韩美一区二区| 麻豆国产99在线中文| 国产真实强被迫伦姧女在线观看| 十九禁啊啪射视频在线观看 | 蜜桃婷婷狠狠久久综合9色| 国产精品午夜小视频观看| WWW婷婷AV久久久影片| 中字幕久久久人妻熟女天美传媒| 免费黄色网址在线观看| 国产午夜人做人免费视频中文| 亚洲视频一| 小SAO货边洗澡边CAO你动漫| 挠黑色超薄丝袜脚心vk40分钟| 大肥婆丰满大肥奶bbw肥| 2018高清国产一区二区三区| 夜夜穞狠狠穞| 亚洲a免费| 新妺妺窝人体色WWW| 特黄特色大片免费播放器9| 日本无码毛片久久久九色综合| 精品日韩视频| 国产主播AV福利精品一区| 国产精品99久久久久久AV色戒 | 国产精品看高国产精品不卡| 成人伊人青草久久综合网| gogogo免费视频观看| av天堂电影网在线观看| 9966在线观看免费高清电影| 中字幕视频在线永久在线| 中文在线观看| 51精品少妇人妻AV一区二区 | 乳巨揉みま痴汉电车中文字幕动漫| 国产中文在线观看| 国产看午夜精品理论片| 国产免费毛片在线观看| 国产亚洲精品精华液|