摘要:簡介在中,如果給定一個或者,我們可以通過循環(huán)來遍歷這個或者這種遍歷我們稱為迭代在中,迭代是來完成的,而很多語言比如或者迭代是通過下標(biāo)完成的,比如代碼可以看出,的循環(huán)抽象程度要高于的循環(huán)因為,的循環(huán)不僅可以用在或上,還可以用在任何可迭代對象上
簡介
在Python中,如果給定一個list或者tuple,我們可以通過for循環(huán)來遍歷這個list或者tuple,這種遍歷我們稱為迭代(Iteration)
在Python中,迭代是for...in來完成的,而很多語言比如C或者Java,迭代list是通過下標(biāo)完成的,比如Java代碼:
for(i=0; i可以看出,Python的for循環(huán)抽象程度要高于Java的for循環(huán)
因為,Python的for循環(huán)不僅可以用在list或tuple上,還可以用在任何可迭代對象上。
那么,可迭代對象有哪些呢?怎么判斷一個對象是否是可迭代對象呢?可以用collections模板里面的iterable包的isinstance函數(shù)進行判斷:from collections import Iterable #載入模塊 isinstance("abc", Iterable) #字符串是可迭代對象嗎? True isinstance([1,2,3],Iterable) #list是可迭代對象嗎? True isinstance({"dede":123},Iterable) #字典是可迭代對象嗎? True字典的迭代
>>> d={"python":1,"php":2,"java":3} #默認(rèn)迭代的是key >>> for i in d: print(i) python php java #自定義迭代key >>> for key in d.keys(): print(key) python php java #迭代value >>> for value in d.values(): print(value) 2 #同時迭代key,value >>> for k , v in d.items(): print(k,v) python 1 php 2 java 3 >>>列表和元祖包含下標(biāo)的迭代
#對于一個列表 language = ["python", "php", "java", "c++"] #第一種 for x in range(len(language)): print(x, language[x]) #第二種 for i, value in enumerate(language): print(i, value) #運行結(jié)果 0 python 1 php 2 java 3 c++ #在同一行輸出: for i ,value in enumerate(lanage): print(i,value ,end=", ") 結(jié)果: 0 python, 1 php, 2 java, 3 c++,任何可迭代對象都可以作用與for循環(huán),保活我們自定義的數(shù)據(jù)類型,只要符合迭代條件,就可以使用for循環(huán)
歡迎加入學(xué)習(xí)交流群569772982,大家一起學(xué)習(xí)交流。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/67948.html
摘要:示例代碼如下此示例中可以看出,當(dāng)?shù)鹘K止時,通過拋出異常告知迭代器已耗盡。但如果迭代器所指向的數(shù)據(jù)結(jié)構(gòu)在其存在時發(fā)生了插入或刪除操作,則迭代器將可能失效。與的情形類似,對進行任何插入操作也將損壞迭代器。 花下貓語:之前說過,我對于編程語言跟其它學(xué)科的融合非常感興趣,但我還說漏了一點,就是我對于 Python 跟其它編程語言的對比學(xué)習(xí),也很感興趣。所以,我一直希望能聚集一些有其它語言基...
摘要:迭代器一個表示數(shù)據(jù)流的對象。迭代器對象本身要求支持以下組成迭代器協(xié)議的兩個方法返回迭代器對象本身。這些特定類型處于迭代器協(xié)議實現(xiàn)之外的東西,并不重要。一旦一個迭代器的方法引發(fā),在子序列調(diào)用中也必須這樣做。 迭代器(iterator) 一個表示數(shù)據(jù)流的對象。反復(fù)調(diào)用迭代器的__next__()方法(或給它傳遞內(nèi)建函數(shù)(built-in function)next())來返回在該流中的后...
摘要:簡評迭代器是惰性可迭代對象,函數(shù)在中是一個惰性的可迭代對象,那么是不是迭代器呢為什么。如果你不能將某些東西傳遞給函數(shù),那么它不是一個迭代器。的對象不是迭代器。 簡評:迭代器(iterator)是惰性可迭代對象(lazy iterable),range 函數(shù)在 Python 3 中是一個惰性的可迭代對象,那么 range 是不是迭代器呢?為什么。 TLNR:Python 3 中的 ran...
摘要:抓住了迭代器模式的本質(zhì),即是迭代,賦予了它極高的地位。輸出結(jié)果輸出結(jié)果小結(jié)迭代器模式幾乎是種設(shè)計模式中最常用的設(shè)計模式,本文主要介紹了是如何運用迭代器模式,并介紹了模塊生成迭代器的種方法,以及種生成迭代器的內(nèi)置方法。 showImg(https://segmentfault.com/img/bVbmv7W?w=4272&h=2848); 在軟件開發(fā)領(lǐng)域中,人們經(jīng)常會用到這一個概念——設(shè)...
閱讀 3384·2023-04-26 01:46
閱讀 2906·2023-04-25 20:55
閱讀 5471·2021-09-22 14:57
閱讀 2974·2021-08-27 16:23
閱讀 1712·2019-08-30 14:02
閱讀 2063·2019-08-26 13:44
閱讀 644·2019-08-26 12:08
閱讀 2951·2019-08-26 11:47