>>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條評論
主站蜘蛛池模板: 国产精品不卡视频 | 中文字幕在线播 | 欧美亚洲国产精品久久 | 香蕉综合在线 | 国产青草视频免费观看97 | 日韩不卡视频在线观看 | 亚洲精品国产第一区二区尤物 | 亚洲五月色| 国产亚洲综合成人91精品 | 人人爽天天碰天天躁夜夜躁 | 无遮挡又黄又爽又色1000部 | 亚洲综合精品一区二区三区中文 | 99精品欧美一区二区三区 | 国产日韩在线播放 | 成人免费牛牛在线视频 | 亚洲高清成人欧美动作片 | 成人短视频网站 | 中文字幕亚洲精品日韩精品 | 色网综合 | 香蕉一区二区三区观 | 看全色黄大色黄大片爽一下 | 九九视频在线免费观看 | 亚洲欧美在线视频免费 | 高清欧美一区二区三区 | 四虎精品免费视频 | 成人毛片免费观看视频在线 | 99国产精品热久久久久久 | 特级毛片在线播放 | 国产专区在线播放 | 伊人精品综合 | 精品中文字幕不卡在线视频 | 国产香蕉精品视频 | 久久一本综合 | 亚洲一区二区三区视频 | 999视频在线 | 亚洲999| 成人免费www在线高清观看 | 五月天激情亚洲婷婷在线 | 成人夜色视频网站在线观看 | 日韩精品综合 | 中文字幕一区二区三区四区 |