最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python3之手動(dòng)創(chuàng)建迭代器的實(shí)例代碼

 更新時(shí)間:2019年05月22日 10:03:00   作者:若數(shù)  
迭代器即可以遍歷諸如列表,字典及字符串等序列對(duì)象甚至自定義對(duì)象的對(duì)象,其本質(zhì)就是記錄迭代對(duì)象中每個(gè)元素的位置。這篇文章主要介紹了Python3之手動(dòng)創(chuàng)建迭代器,需要的朋友可以參考下

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

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

序列對(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

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

把一個(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

總結(jié)

以上所述是小編給大家介紹的Python3之手動(dòng)創(chuàng)建迭代器的實(shí)例代碼,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!

相關(guān)文章

最新評(píng)論

皋兰县| 醴陵市| 措勤县| 光山县| 香河县| 梧州市| 静宁县| 昭平县| 临洮县| 辽阳县| 岳池县| 新源县| 杭锦旗| 新密市| 页游| 威海市| 丹凤县| 遵义市| 探索| 泽普县| 甘南县| 巩义市| 庆元县| 凉山| 邯郸市| 河间市| 科技| 望都县| 拜泉县| 玉龙| 德江县| 武功县| 雷波县| 乐业县| 南雄市| 安丘市| 建湖县| 芒康县| 崇阳县| 临西县| 延津县|