>>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條評論
主站蜘蛛池模板: 99久久精品国内 | 久久久精品2021免费观看 | 久草视频免费 | 国产成人18黄网站麻豆 | 免费看一级大片 | 2021久久精品国产99国产 | 日日操狠狠操 | 亚洲国产韩国一区二区 | 久久精品视频一区 | 福利视频第一页 | 成年人网站在线 | 久久久久爽亚洲精品 | 四虎影院的网址 | 亚洲国产高清人在线 | 在线免费观看中文字幕 | 亚洲国产欧美一区 | 久久频这里精品99香蕉久 | 99re这里只有热视频 | 日本免费新一区二区三区 | 天天毛片| 波多野结衣视频一区 | 四虎在线视频观看大全影视 | 看真人一级毛多毛片 | 亚洲三级欧美 | 四虎在线精品免费高清在线 | 麻豆视频一区二区 | 四虎影院在线免费观看视频 | 亚洲韩精品欧美一区二区三区 | 亚洲成色在线综合网站 | 久热这里只有精品视频6 | 色综合久久精品中文字幕首页 | 狠狠狠狠狠狠狠 | 欧美性色黄大片一级毛片视频 | 四虎b7s22c0m| 91在线视频| 九九热视频精品在线 | 人成午夜欧美大片免费视频 | 国产亚洲视频在线 | 欧美激情一区二区三区中文字幕 | 国产99re在线观看只有精品 | 免费看黄色的视频 |