什么是python的迭代
如果給定一個(gè)list或tuple,我們可以通過(guò)for循環(huán)來(lái)遍歷這個(gè)list或tuple,這種遍歷我們稱(chēng)為迭代(Iteration)。
(在Python中,迭代是通過(guò)for ... in來(lái)完成的)
Python的for循環(huán)抽象程度要高于C的for循環(huán),因?yàn)镻ython的for循環(huán)不僅可以用在list或tuple上,還可以作用在其他可迭代對(duì)象上。
(可以直接作用于for循環(huán)的對(duì)象統(tǒng)稱(chēng)為可迭代對(duì)象(Iterable),如list、tuple、dict、set、str等。)
list這種數(shù)據(jù)類(lèi)型雖然有下標(biāo),但很多其他數(shù)據(jù)類(lèi)型是沒(méi)有下標(biāo)的,但是,只要是python的可迭代對(duì)象,無(wú)論有無(wú)下標(biāo),都可以迭代,比如dict就可以迭代:
>>> d = {'a': 1, 'b': 2, 'c': 3} >>> for key in d:... print(key) ... a c b
因?yàn)閐ict的存儲(chǔ)不是按照l(shuí)ist的方式順序排列,所以,迭代出的結(jié)果順序很可能不一樣。
默認(rèn)情況下,dict迭代的是key。如果要迭代value,可以用for value in d.values(),如果要同時(shí)迭代key和value,可以用for k, v in d.items()。
由于字符串也是可迭代對(duì)象,因此,也可以作用于for循環(huán):
>>> for ch in 'ABC': ... print(ch) ...ABC
所以,當(dāng)我們使用for循環(huán)時(shí),只要作用于一個(gè)可迭代對(duì)象,for循環(huán)就可以正常運(yùn)行,而我們不太關(guān)心該對(duì)象究竟是list還是其他數(shù)據(jù)類(lèi)型。
那么,如何判斷一個(gè)對(duì)象是可迭代對(duì)象呢?方法是通過(guò)collections模塊的Iterable類(lèi)型判斷:
>>> from collections import Iterable >>> isinstance('abc', Iterable) # str是否可迭代 True >>> isinstance([1,2,3], Iterable) # list是否可迭代 True >>> isinstance(123, Iterable) # 整數(shù)是否可迭代 False
最后一個(gè)小問(wèn)題,如果要對(duì)list實(shí)現(xiàn)類(lèi)似Java那樣的下標(biāo)循環(huán)怎么辦?Python內(nèi)置的enumerate函數(shù)可以把一個(gè)list變成索引-元素對(duì),這樣就可以在for循環(huán)中同時(shí)迭代索引和元素本身:
>>> for i, value in enumerate(['A', 'B', 'C']): ... print(i, value) ... 0 A 1 B 2 C
上面的for循環(huán)里,同時(shí)引用了兩個(gè)變量,在Python里是很常見(jiàn)的,比如下面的代碼:
>>> for x, y in [(1, 1), (2, 4), (3, 9)]: ... print(x, y) ... 1 1 2 4 3 9
以上就是本篇文章所講述的所有內(nèi)容,這篇文章主要介紹了相關(guān)于python中迭代和迭代對(duì)象的知識(shí),希望你能借助資料從而理解上述所說(shuō)的內(nèi)容。希望我在這片文章所講述的內(nèi)容能夠?qū)δ阌兴鶐椭?,讓你學(xué)習(xí)python更加輕松,感謝大家對(duì)腳本之家的支持。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
