亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

Python3中怎么手動創建一個迭代器

發布時間:2021-06-17 15:55:40 來源:億速云 閱讀:127 作者:Leah 欄目:開發技術

這篇文章將為大家詳細講解有關Python3中怎么手動創建一個迭代器,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

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

兩個基本方法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

關于Python3中怎么手動創建一個迭代器就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

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

AI

青河县| 长武县| 来宾市| 千阳县| 古丈县| 朔州市| 周至县| 富锦市| 霍城县| 扎赉特旗| 乌什县| 光泽县| 隆子县| 贡山| 安远县| 阳春市| 河南省| 西平县| 正安县| 牟定县| 富民县| 宾川县| 南城县| 会昌县| 乌兰浩特市| 沈阳市| 久治县| 合川市| 淅川县| 平谷区| 富源县| 辽阳市| 潮州市| 土默特右旗| 甘德县| 桐城市| 镇远县| 定州市| 乳山市| 文山县| 三都|