<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                **迭代器 ( Iterator )** 我們要深入了解迭代器就需要知道一個名詞 : 可迭代對象( Iterable ) 凡是可作用于 for 循環的對象都是 : 可迭代對象 ( Iterable ) 類型 , 如: str、list、tuple、dict、set 等數據類型。 判斷一個對象是否是可迭代對象 ( Iterable ) 可以使用 isinstance() 方法。 ~~~ >>> from collections import Iterable #導入可迭代對象模塊 >>> isinstance(123,Iterable) #整形不是可迭代對象 False >>> isinstance('',Iterable) #字符串是可迭代對象 True >>> isinstance([],Iterable) #列表是可迭代對象 True >>> isinstance((),Iterable) #元組是可迭代對象 True >>> isinstance({'name':'airvip'},Iterable) #字典是可迭代對象 True >>> isinstance({'name','airvip'},Iterable) #集合是可迭代對象 ~~~ 迭代器有兩個基本的方法:iter() 和 next() 。 **迭代器 (Iterator)** : 可以被 next() 函數調用并不斷返回下一個值的對象。 迭代器對象從集合的第一個元素開始訪問,直到最后拋出 StopIteration 錯誤表示無法繼續返回下一個值了。 迭代器只能往前不會后退。 判斷一個對象是否是迭代器對象 ( Iterator ) 也可以使用 isinstance() 方法。 ~~~ >>> from collections import Iterator >>> isinstance(123,Iterator) False >>> isinstance('',Iterable) False >>> isinstance([],Iterator) False >>> isinstance((),Iterator) False >>> isinstance({'name':'airvip'},Iterator ) False >>> isinstance({'name','airvip'},Iterator) False ~~~ 可以看到 str、list、dict、set 等是可迭代對象 ( Iterable ) 但不是迭代器 ( Iterator ) 。 把 str、list、dict、set 等可迭代對象 ( Iterable ) 變成 迭代器 ( Iterator ) 可以使用 iter() 函數。 ~~~ >>> isinstance(iter(''),Iterable) True >>> isinstance(iter([]),Iterator) True >>> isinstance(iter(()),Iterator) True >>> isinstance(iter({'name':'airvip'},Iterator ) True >>> isinstance(iter({'name','airvip'}),Iterator) True ~~~ **實例** ~~~ >>> list = [1,2,3] #初始化一個列表 >>> iter = iter(list) # 創建迭代器對象 >>> next(iter) # 輸出迭代器的下一個元素 1 >>> next(iter) 2 >>> next(iter) 3 >>> next(iter) #拋出 StopIteration 錯誤 Traceback (most recent call last): File "<stdin>", line 1, in <module> StopIteration ~~~ Python 的 for 循環本質上就是通過不斷調用 next() 函數實現的 例如: ~~~ #!/usr/bin/env python3 # -*- coding:utf-8 -*- for i in [0,1,2,3]: print(i,end=',') ~~~ 實際上完全等價于 ~~~ #!/usr/bin/env python3 # -*- coding:utf-8 -*- iter = iter([0,1,2,3]) #創建迭代器對象 while True: #程序進入死循環 try: print(next(iter),end=',') #打印下一個值 except StopIteration: break # 遇到 StopIteration 就退出死循環 ~~~ 執行結果 ~~~ 0,1,2,3, ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看