本篇文章為大家展示了Python 3如何手動(dòng)創(chuàng)建迭代器,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。
成都創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),寧夏企業(yè)網(wǎng)站建設(shè),寧夏品牌網(wǎng)站建設(shè),網(wǎng)站定制,寧夏網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,寧夏網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
今天帶大家學(xué)習(xí)Python 3如何手動(dòng)創(chuàng)建迭代器!
概述
迭代器即可以遍歷諸如列表,字典及字符串等序列對(duì)象甚至自定義對(duì)象的對(duì)象,其本質(zhì)就是記錄迭代對(duì)象中每個(gè)元素的位置。迭代過程從第一個(gè)元素至最后一個(gè)元素,且過程不能回滾或反方向迭代。
序列對(duì)象可以利用iter()直接創(chuàng)建迭代器,并通過next()即可迭代迭代器。
利用for循環(huán)迭代
S = 'PYTHON' IT = iter(S) for it in IT: print(it)
示例結(jié)果:
P Y T H O N
利用next()迭代
S = 'PYTHON' IT = iter(S) print(next(IT)) print(next(IT)) print(next(IT)) print(next(IT)) print(next(IT)) print(next(IT))
示例結(jié)果:
P Y T H O N
當(dāng)我們使用next()迭代時(shí),如果迭代了次數(shù)超過了迭代器中的元素個(gè)數(shù)就會(huì)引發(fā)StopIteration,由此我們可以利用while循環(huán)迭代,并不斷捕捉迭代結(jié)束的異常完成for循環(huán)的迭代過程。
S = 'PYTHON' IT = iter(S) while True: try: print(next(IT)) except StopIteration: break P Y T H O N
把一個(gè)類作為一個(gè)迭代器使用需要在類中實(shí)現(xiàn)兩個(gè)方法 iter() 與 next() 。iter() 方法返回一個(gè)特殊的迭代器對(duì)象, 這個(gè)迭代器對(duì)象實(shí)現(xiàn)了 next() 方法并通過 StopIteration 異常標(biāo)識(shí)迭代的完成。next() 方法(Python 2 里是 next())會(huì)返回下一個(gè)迭代器對(duì)象。下面這個(gè)類構(gòu)造了一個(gè)迭代器接受一個(gè)可迭代的數(shù)字,每次迭代都返回上一次迭代結(jié)果的平方,當(dāng)?shù)Y(jié)果大于9999999999999時(shí)拋出異常。利用該類創(chuàng)建示例對(duì)數(shù)字2進(jìn)行平方和迭代。
class IT_SQUARE: def __init__(self, x): self.x = x def __next__(self): self.x = self.x ** 2 if self.x > 9999999999999: raise StopIteration else: return self.x def __iter__(self): return self IT1 = IT_SQUARE(2) while True: try: print(IT1.__next__()) except StopIteration: break
示例結(jié)果
4 16 256 65536 4294967296
上述內(nèi)容就是Python 3如何手動(dòng)創(chuàng)建迭代器,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
網(wǎng)頁(yè)題目:Python3如何手動(dòng)創(chuàng)建迭代器
轉(zhuǎn)載源于:http://aaarwkj.com/article34/igjepe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營(yíng)銷型網(wǎng)站建設(shè)、Google、網(wǎng)站制作、、動(dòng)態(tài)網(wǎng)站、微信公眾號(hào)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)