乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      [每日一題]4、Python中的迭代器

       Four兄 2019-08-25

      第一時(shí)間收到精彩推送!

      Python Every Day, 第 4 天


      迭代器的好處:

      迭代器和列表的作用相似,但是列表隨著元素個(gè)數(shù)的增加,所占用的空間也會(huì)增加。而迭代器的本質(zhì)是一個(gè)對(duì)象,并不像列表那樣通過索引獲取元素,充分的節(jié)省了內(nèi)存。

      迭代對(duì)象:

      在Python中,操作列表、字典、字符串等可以通過for ... in ... 的方式去獲取對(duì)象中的元素,這個(gè)過程稱為遍歷,也叫做迭代。這些對(duì)象稱為可迭代對(duì)象。

      這些對(duì)象都有一個(gè) __iter__()方法,這個(gè)方法提供了一個(gè)迭代器。迭代器又會(huì)實(shí)現(xiàn)了__next__()方法。通過此方法可以去訪問迭代對(duì)象中的元素。從第一個(gè)開始,順序訪問,直到訪問到最后一個(gè)元素。會(huì)拋出StopInteration異常。

      迭代器 和 迭代對(duì)象 的區(qū)別:

      1)可迭代對(duì)象包含迭代器。
      2)如果一個(gè)對(duì)象擁有__iter__方法,其是可迭代對(duì)象;如果一個(gè)對(duì)象擁有next方法,其是迭代器。
      3)定義可迭代對(duì)象,必須實(shí)現(xiàn)__iter__方法;定義迭代器,必須實(shí)現(xiàn)__iter__和next方法。

      總結(jié)含有 __iter__() 【必須】和 __next__() 方法的就是迭代器。

      有 __iter__() 方法代表可以使用for循環(huán)

      有__next()__ 方法 可以通過next() 方法去獲取迭代器中的元素

      代碼示例:

      a = [135]
      print(type(a))  # <class 'list'>
      from collections import Iterable
      # 創(chuàng)建一個(gè)a的迭代對(duì)象
      a_iter = iter(a)
      print(type(a_iter))  # <class 'list_iterator'>


      print(a_iter.__next__())  # 1
      print(a_iter.__next__())  # 3
      print(a_iter.__next__())  # 5
      print(a_iter.__next__())  # 迭代到最后一個(gè)元素時(shí),會(huì)拋出StopIteration異常
      # 使用for in 來遍歷一個(gè)迭代對(duì)象
      for i in a_iter:
          print(i)

      # 遍歷try except break
      while 1:
          try:
              print(a_iter.__next__())
          except StopIteration:
              print('結(jié)束....')
              break

      通過Iterator判斷是否是迭代對(duì)象。

      from collections import Iterable
      # 判斷列表是否是可迭代對(duì)象
      print(isinstance([], Iterable))  # True
      # 判斷字典是否是可迭代對(duì)象
      print(isinstance({}, Iterable)) # True
      # 判斷字符串是否是迭代對(duì)象
      print(isinstance('Hello', Iterable)) # True

      感謝您的閱讀

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多