這篇文章主要介紹“Python迭代器是什么及有哪些優(yōu)缺點”,在日常操作中,相信很多人在Python迭代器是什么及有哪些優(yōu)缺點問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Python迭代器是什么及有哪些優(yōu)缺點”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!
創(chuàng)新互聯(lián)于2013年創(chuàng)立,先為蓮都等服務(wù)建站,蓮都等地企業(yè),進行企業(yè)商務(wù)咨詢服務(wù)。為蓮都企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
概念:
迭代器是?迭代取值的工具,迭代是一個重復(fù)的過程,每次重復(fù)都是基于上一次的結(jié)果而繼續(xù),單純的重復(fù)并不是迭代
特征:
并不依賴索引,是通過next指針(內(nèi)存地址尋址)迭代所有數(shù)據(jù)。一次只取一個值,而不是一股腦的把所有數(shù)據(jù)放進內(nèi)存
1.什么是可迭代對象 內(nèi)置有__iter__方法的都可以稱之為可迭代對象 2.屬于可迭代對象的有 字符串 列表 字典 元組 集合 文件對象 3.可迭代對象調(diào)用雙下iter方法就會變成迭代器對象 內(nèi)置有__iter__和__next__方法的稱之為迭代器對象 4.迭代器對象調(diào)用雙下next方法就是在迭代取值 for循環(huán)內(nèi)部采用的就是該原理 """ 迭代器對象可以節(jié)省內(nèi)存空間 并且 提供了一種不依賴于索引取值的方式 """
for 變量名 in 可迭代對象: for循環(huán)體代碼 1.將in后面的可迭代對象調(diào)用雙下iter變成迭代器對象 迭代器對象無限制再調(diào)用雙下iter還是迭代器對象本身 2.讓生成的迭代器對象調(diào)用雙下next迭代取值 3.一旦取值完畢雙下next方法會報錯 for循環(huán)會自動捕獲并處理
優(yōu)點:
1、為序列和非序列類型提供了一種統(tǒng)一的迭代取值方式。
2、惰性計算:迭代器對象表示的是一個數(shù)據(jù)流,可以只在需要時才去調(diào)用next來計算出一個值,就迭代器本身來說,同一時刻在內(nèi)存中只有一個值,因而可以存放無限大的數(shù)據(jù)流,而對于其他容器類型,如列表,需要把所有的元素都存放于內(nèi)存中,受內(nèi)存大小的限制,可以存放的值的個數(shù)是有限的。
缺點:
1、除非取盡,否則無法獲取迭代器的長度
2、只能取下一個值,不能回到開始,更像是‘一次性的’,迭代器產(chǎn)生后的唯一目標(biāo)就是重復(fù)執(zhí)行next方法直到值取盡,否則就會停留在某個位置,等待下一次調(diào)用next;若是要再次迭代同個對象,你只能重新調(diào)用iter方法去創(chuàng)建一個新的迭代器對象,如果有兩個或者多個循環(huán)使用同一個迭代器,必然只會有一個循環(huán)能取到值。
到此,關(guān)于“Python迭代器是什么及有哪些優(yōu)缺點”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
網(wǎng)站題目:Python迭代器是什么及有哪些優(yōu)缺點
網(wǎng)站鏈接:http://weahome.cn/article/pejcsc.html