91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python 3如何手動創建迭代器

發布時間:2021-10-25 19:01:51 來源:億速云 閱讀:135 作者:柒染 欄目:編程語言

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

今天帶大家學習Python 3如何手動創建迭代器!

概述

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

兩個基本方法iter、next

序列對象可以利用iter()直接創建迭代器,并通過next()即可迭代迭代器。

利用for循環迭代

S = 'PYTHON'
IT = iter(S)
for it in IT:
 print(it)

示例結果:

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))

示例結果:

P
Y
T
H
O
N

當我們使用next()迭代時,如果迭代了次數超過了迭代器中的元素個數就會引發StopIteration,由此我們可以利用while循環迭代,并不斷捕捉迭代結束的異常完成for循環的迭代過程。

S = 'PYTHON'
IT = iter(S)
while True:
 try:
 print(next(IT))
 except StopIteration:
 break
P
Y
T
H
O
N

手動構建迭代器

把一個類作為一個迭代器使用需要在類中實現兩個方法 iter() 與 next() 。iter() 方法返回一個特殊的迭代器對象, 這個迭代器對象實現了 next() 方法并通過 StopIteration 異常標識迭代的完成。next() 方法(Python 2 里是 next())會返回下一個迭代器對象。下面這個類構造了一個迭代器接受一個可迭代的數字,每次迭代都返回上一次迭代結果的平方,當迭代結果大于9999999999999時拋出異常。利用該類創建示例對數字2進行平方和迭代。

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

示例結果

4
16
256
65536
4294967296

上述內容就是Python 3如何手動創建迭代器,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

高阳县| 石棉县| 全椒县| 宜良县| 汝城县| 阳曲县| 三亚市| 封开县| 永和县| 汝阳县| 博野县| 奉化市| 黄冈市| 合水县| 玉龙| 连云港市| 正安县| 定结县| 道孚县| 噶尔县| 丹巴县| 陆川县| 文昌市| 新乡县| 枣阳市| 慈溪市| 二手房| 广汉市| 文成县| 肇州县| 旬阳县| 定南县| 石景山区| 祥云县| 修武县| 万载县| 米泉市| 岳池县| 观塘区| 合肥市| 鱼台县|