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

Python yield使用方法示例

 更新時(shí)間:2013年12月04日 11:01:20   作者:  
這篇文章主要介紹了Python yield使用方法,大家參考使用吧

1. iterator
疊代器最簡(jiǎn)單例子應(yīng)該是數(shù)組下標(biāo)了,且看下面的c++代碼:

復(fù)制代碼 代碼如下:

int array[10];
for ( int i = 0; i < 10; i++ )
    printf("%d ", array[i]);

疊代器工作在一個(gè)容器里(array[10]),它按一定順序(i++)從容器里取出值(array[i])并進(jìn)行操作(printf("%d ", array[i])。

上面的代碼翻譯成python:

 

復(fù)制代碼 代碼如下:

 array = [i for i in range(10)]
for i in array:
    print i,
 

首先,array作為一個(gè)list是個(gè)容器,其次list這個(gè)內(nèi)建類(lèi)型有默認(rèn)的next行為,python發(fā)現(xiàn)這些之后采取的秘密的沒(méi)被各位看到的動(dòng)作是:拿出array這丫容器的疊代器,從里面next一下把值給i供for循環(huán)主體處置,for把這個(gè)值print了。

現(xiàn)在的問(wèn)題是數(shù)據(jù)可以做容器疊代,代碼可以嗎?

2. constructor

怎么把函數(shù)變成constructor?  在函數(shù)體里有yield就行了!

復(fù)制代碼 代碼如下:

def gen():
    print 'enter'
    yield 1
    print 'next'
    yield 2
    print 'next again'

for i in gen():
    print i

各位!python看到gen函數(shù)里出現(xiàn)yield,知道可以用next了,問(wèn)題是怎么對(duì)代碼這個(gè)容器玩next?
從容器里拿到iterator的時(shí)候它還什么也不是,處在容器入口處,對(duì)于數(shù)組來(lái)說(shuō)就是下標(biāo)為-1的地方,對(duì)于函數(shù)來(lái)說(shuō)就是函數(shù)入口嘛事沒(méi)干,但是萬(wàn)事俱備就欠next。
開(kāi)始for i in g,next讓itreator爬行到y(tǒng)ield語(yǔ)句存在的地方并返回值,
再次next就再爬到下一個(gè)yield語(yǔ)句存在的地方并返回值,依次這樣直到函數(shù)返回(容器盡頭)。
您一定看出來(lái)上面代碼的輸出是:
enter
1
next
2
next again

3. 使用yield
yield的代碼疊代能力不但能打斷函數(shù)執(zhí)行還能記下斷點(diǎn)處的數(shù)據(jù),下次next書(shū)接上回,
這正是遞歸函數(shù)需要的。
例如中序遍歷二叉樹(shù):
(應(yīng)該是David Mertz寫(xiě)的)

復(fù)制代碼 代碼如下:

def inorder(t):
    if t:
        for x in inorder(t.left):
            yield x
        yield t.label
        for x in inorder(t.right):
            yield x
for n in inorder(tree)
    print n

相關(guān)文章

  • Django框架組成結(jié)構(gòu)、基本概念與文件功能分析

    Django框架組成結(jié)構(gòu)、基本概念與文件功能分析

    這篇文章主要介紹了Django框架組成結(jié)構(gòu)、基本概念與文件功能,簡(jiǎn)單分析了Django框架的基本架構(gòu)、組成、項(xiàng)目創(chuàng)建方法、模塊組成以及相關(guān)文件功能,需要的朋友可以參考下
    2019-07-07
  • pandas如何優(yōu)雅的列轉(zhuǎn)行及行轉(zhuǎn)列詳解

    pandas如何優(yōu)雅的列轉(zhuǎn)行及行轉(zhuǎn)列詳解

    我們?cè)谧鰯?shù)據(jù)處理的時(shí)候遇到pandas列轉(zhuǎn)行的問(wèn)題,這篇文章主要給大家介紹了關(guān)于pandas如何優(yōu)雅的列轉(zhuǎn)行及行轉(zhuǎn)列的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2021-12-12
  • 使用py2exe在Windows下將Python程序轉(zhuǎn)為exe文件

    使用py2exe在Windows下將Python程序轉(zhuǎn)為exe文件

    這篇文章主要介紹了Windows下用py2exe將Python程序轉(zhuǎn)為exe文件的方法,注意py2exe只是負(fù)責(zé)文件格式的轉(zhuǎn)換,并不能將Python程序編譯為機(jī)器碼,要的朋友可以參考下
    2016-03-03
  • pyecharts如何實(shí)現(xiàn)顯示數(shù)據(jù)為百分比的柱狀圖

    pyecharts如何實(shí)現(xiàn)顯示數(shù)據(jù)為百分比的柱狀圖

    這篇文章主要介紹了pyecharts如何實(shí)現(xiàn)顯示數(shù)據(jù)為百分比的柱狀圖,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • python 實(shí)現(xiàn)屏幕錄制示例

    python 實(shí)現(xiàn)屏幕錄制示例

    今天小編就為大家分享一篇python 實(shí)現(xiàn)屏幕錄制示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-12-12
  • Python列表list排列組合操作示例

    Python列表list排列組合操作示例

    這篇文章主要介紹了Python列表list排列組合操作,涉及Python排列組合數(shù)值運(yùn)算相關(guān)操作技巧,需要的朋友可以參考下
    2018-12-12
  • Python使用get_text()方法從大段html中提取文本的實(shí)例

    Python使用get_text()方法從大段html中提取文本的實(shí)例

    今天小編就為大家分享一篇Python使用get_text()方法從大段html中提取文本的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-08-08
  • python肯德?tīng)栂禂?shù)相關(guān)性數(shù)據(jù)分析示例

    python肯德?tīng)栂禂?shù)相關(guān)性數(shù)據(jù)分析示例

    這篇文章主要為大家介紹了python肯德?tīng)栂禂?shù)相關(guān)性數(shù)據(jù)分析示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • Python實(shí)現(xiàn)基于SVM的分類(lèi)器的方法

    Python實(shí)現(xiàn)基于SVM的分類(lèi)器的方法

    這篇文章主要介紹了Python實(shí)現(xiàn)基于SVM的分類(lèi)器的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • python高級(jí)內(nèi)置函數(shù)用法實(shí)例

    python高級(jí)內(nèi)置函數(shù)用法實(shí)例

    在本篇文章里小編給大家整理的是一篇關(guān)于python高級(jí)內(nèi)置函數(shù)用法實(shí)例內(nèi)容,有興趣的朋友們可以學(xué)參考下。
    2021-09-09

最新評(píng)論

乌恰县| 龙口市| 新巴尔虎右旗| 铜山县| 曲松县| 和顺县| 仙居县| 陆丰市| 株洲县| 古田县| 郓城县| 北安市| 太仓市| 澎湖县| 织金县| 丁青县| 惠来县| 张家港市| 滕州市| 开封县| 密云县| 景谷| 乃东县| 高邮市| 定边县| 百色市| 长子县| 佛冈县| 喀什市| 遂溪县| 河津市| 鄄城县| 昭觉县| 泽库县| 西乌珠穆沁旗| 曲阳县| 泰宁县| 清镇市| 昌宁县| 会宁县| 海淀区|