真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Python3如何手動(dòng)創(chuàng)建迭代器-創(chuàng)新互聯(lián)

本篇文章為大家展示了Python 3如何手動(dòng)創(chuàng)建迭代器,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

成都網(wǎng)站建設(shè)、成都網(wǎng)站制作介紹好的網(wǎng)站是理念、設(shè)計(jì)和技術(shù)的結(jié)合。創(chuàng)新互聯(lián)建站擁有的網(wǎng)站設(shè)計(jì)理念、多方位的設(shè)計(jì)風(fēng)格、經(jīng)驗(yàn)豐富的設(shè)計(jì)團(tuán)隊(duì)。提供PC端+手機(jī)端網(wǎng)站建設(shè),用營銷思維進(jìn)行網(wǎng)站設(shè)計(jì)、采用先進(jìn)技術(shù)開源代碼、注重用戶體驗(yàn)與SEO基礎(chǔ),將技術(shù)與創(chuàng)意整合到網(wǎng)站之中,以契合客戶的方式做到創(chuàng)意性的視覺化效果。

今天帶大家學(xué)習(xí)Python 3如何手動(dòng)創(chuàng)建迭代器!

概述

迭代器即可以遍歷諸如列表,字典及字符串等序列對象甚至自定義對象的對象,其本質(zhì)就是記錄迭代對象中每個(gè)元素的位置。迭代過程從第一個(gè)元素至最后一個(gè)元素,且過程不能回滾或反方向迭代。

兩個(gè)基本方法iter、next

序列對象可以利用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

手動(dòng)構(gòu)建迭代器

把一個(gè)類作為一個(gè)迭代器使用需要在類中實(shí)現(xiàn)兩個(gè)方法 iter() 與 next() 。iter() 方法返回一個(gè)特殊的迭代器對象, 這個(gè)迭代器對象實(shí)現(xiàn)了 next() 方法并通過 StopIteration 異常標(biāo)識(shí)迭代的完成。next() 方法(Python 2 里是 next())會(huì)返回下一個(gè)迭代器對象。下面這個(gè)類構(gòu)造了一個(gè)迭代器接受一個(gè)可迭代的數(shù)字,每次迭代都返回上一次迭代結(jié)果的平方,當(dāng)?shù)Y(jié)果大于9999999999999時(shí)拋出異常。利用該類創(chuàng)建示例對數(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)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道。


網(wǎng)頁標(biāo)題:Python3如何手動(dòng)創(chuàng)建迭代器-創(chuàng)新互聯(lián)
轉(zhuǎn)載來源:http://weahome.cn/article/dpcdos.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部