>>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條評論
主站蜘蛛池模板: 亚欧成人毛片一区二区三区四区 | 爱爱视频免费在线观看 | 欧美一级在线播放 | 天天做天天看夜夜爽毛片 | 经典国产乱子伦精品视频 | 亚洲欧美另类在线 | 最好看的毛片 | 亚洲成人播放 | 久草美女视频 | 4hu四虎免费影院www | 在线国产区 | 性生活国产| 关婷哪一级毛片高清免费看 | 久久777国产线看观看精品卜 | 2019年国产不卡在线刷新 | 国产一级毛片一区二区三区 | 国产ww久久久久久久久久 | 久久久久爽亚洲精品 | 亚洲一区二区视频 | 老司机久久精品 | 日日干综合 | 久久er国产精品免费观看1 | 曰本性l交视频 | 国内精品久久久久 | 亚洲欧美综合久久 | 国产欧美日韩精品一区二区三区 | 午夜欧美激情 | 国产成人三级 | 日韩 亚洲 欧美 中文 高清 | 亚洲欧美一区二区三区四区 | 无遮挡无遮挡91桃色在线观看 | 国产激情一区二区三区成人91 | 奇米影视在线视频8888 | 午夜精品在线免费观看 | 一区二区三区欧美视频 | 毛片黄片视频 | 天天摸天天操免费播放小视频 | 欧美肥婆xxxx欧美另类 | 欧美天天影院 | 伊人免费| 国内精品久久久久影院6 |