>>fromcollecti" />

亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Python函數編程——迭代器

系統 1541 0

Python函數編程——迭代器

我們已經知道,可以直接作用于 for 循環的數據類型有以下幾種:

1、類是集合數據類型,如 list 、 tuple 、 dict 、 set str 等;

2、一類是 generator ,包括生成器和帶 yield 的generator function。

這些可以直接作用于 for 循環的對象統稱為 可迭代對象:Iterable,可迭代的意思就是可遍歷、可循環。

可以使用 isinstance() 判斷一個對象是否是 Iterable 對象:

          
            >>> from collections import Iterable
>>> isinstance([], Iterable)
True
>>> isinstance({}, Iterable)
True
>>> isinstance('abc', Iterable)
True
>>> isinstance((x for x in range(10)), Iterable)
True
>>> isinstance(100, Iterable)
False
          
        

而生成器不但可以作用于for循環,還可以被next()函數不斷調用并返回下一個值,直到最后拋出StopIteration錯誤表示無法繼續返回下一個值了。

可以被next()函數調用并不斷返回下一個值的對象稱為迭代器:Iterator。

生成器都是 Iterator 對象,但 list 、 dict 、 str 雖然是 Iterable ,卻不是 Iterator 。

list 、 dict 、 str Iterable 變成 Iterator 可以使用 iter() 函數:

          
            >>> isinstance(iter([]), Iterator)
True
>>> isinstance(iter('abc'), Iterator)
True
          
        

你可能會問,為什么 list dict str 等數據類型不是 Iterator ?

這是因為Python的 Iterator 對象表示的是一個數據流,Iterator對象可以被 next() 函數調用并不斷返回下一個數據,直到沒有數據時拋出 StopIteration 錯誤??梢园堰@個數據流看做是一個有序序列,但我們卻不能提前知道序列的長度,只能不斷通過 next() 函數實現按需計算下一個數據,所以 Iterator 的計算是惰性的,只有在需要返回下一個數據時它才會計算。

Iterator 甚至可以表示一個無限大的數據流,例如全體自然數。而使用list是永遠不可能存儲全體自然數的。

總結

凡是可作用于 for 循環的對象都是 Iterable 類型;

凡是可作用于 next() 函數的對象都是 Iterator 類型,它們表示一個惰性計算的序列;

集合數據類型如 list 、 dict 、 str 等是 Iterable 但不是 Iterator ,不過可以通過 iter() 函數獲得一個 Iterator 對象。


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。。?/p>

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 欧美日韩国产另类一区二区三区 | 12345国产精品高清在线 | 九九热在线精品视频 | 天堂成人精品视频在线观 | 香蕉视频在线观看视频 | 久久香蕉久久 | 99久久99这里只有免费费精品 | 四虎在线最新永久免费 | 美女福利在线观看 | 午夜狠狠操 | 亚洲综合视频 | 精品日韩在线视频 | 91在线播放免费不卡无毒 | 黄 色 免 费 网站在线观看 | 欧美色88| 亚洲我不卡 | 久久精品成人免费看 | 无遮挡一级毛片性视频不卡 | 国产视频日本 | 精品久久久久久 | 国产精品久久久久久免费播放 | 在线观看欧美亚洲日本专区 | 免费人成网站在线高清 | 中文字幕国产亚洲 | 成人毛片网| 久久亚洲精品专区蓝色区 | 草久久久久 | 久久国产高清字幕中文 | 在线视频一区二区日韩国产 | 亚洲一区二区三区高清视频 | 天天操天天射天天 | 老扒夜夜春宵粗大好爽aa毛片 | 欧美一区二区三区精品 | 日本中文字幕二区三区 | 日韩精品欧美亚洲高清有无 | 精品无人区乱码一区2区3区 | 伊人午夜| 国产亚洲精品一区久久 | 5060午夜一级毛片免费观看 | 日本岛国片在线观看 | a毛片成人免费全部播放 |