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

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ## 概述 for循環在python中是一個通用的**序列迭代器**:可以遍歷任何**有序序列內**對象內的元素。 通用的序列迭代器,用于遍歷任何有序序列對象內的元素,字符串,列表,元組,字典,其他內置可迭代對象。 for循環會使用**迭代協議**來遍歷迭代對象中的每一項,使用對象的__next__()方法,捕捉到**StopIteration**停止循環。 >[info]`for循環的運算速度快于while` ### 一般格式 ```python for expression in iterable: suite1 else: suite2 ``` expression一般是一個單獨的變量,或是一個變量序列,一般以元組形式給出 如果循環正常退出,則會執行else語句 ### 文件掃描 #### 將整個文件讀取為字符串 ``` fd = open('test.txt','r') print(fd.read()) ``` #### 逐個字符讀取 使用read(1)一次讀取一個字符,一次只在內存中加載一個字符 ``` fd = open('test.txt','r') while True: char = fd.read(1) if not char: break print(char) ``` 使用read()會一次性把文件加載至內存,浪費資源 ``` for char in open('test.txt','r').read(): print(char) ``` #### 逐行讀取文件 使用while進行逐行讀取 ``` fd = open('test.txt','r') while True: line = fd.readline() if not line: break print(line) ``` 使用for進行逐行讀取,此處readlines方法會將整個文件以行為元素組成列表,并且一次性加載至內存。 ``` for char in open('test.txt','r').readlines(): print(char) ``` 使用for進行逐行讀取,此處使用文件迭代器,每次迭代的時候讀取一行。 ``` for char in open('test.txt','r'): print(char) ``` **總結** * 按字符讀取使用while循環 * 按行讀取使用for循環 ### 循環的編寫技巧 #### 循環計數器range range常用在for循環中來產生索引,也可用在任何需要整數列表的地方。 #### 非完備遍歷:range和分片 在遍歷是跳過一些元素 `range(0,10,2)` #### 修改列表:range ``` L = [1, 2, 3, 4] for i in range(len(L)): L[i] += 1 ``` 使用列表解析,會重新形成一個列表,不沒有在原處進行修改 `[x+1 for x in L]` #### 并行遍歷:zip和map ``` L1 = [1, 2, 3, 4] L2 = [5, 6, 7, 8] list(zip(L1, L2)) ``` `list(map(ord, 'spam'))` #### 使用zip構建字典 ```python for (k, v) in zip(keys, values): d[k] = v ``` #### 產生偏移和元素:enumerate range可以產生字符串中元素的偏移值, enumerate產生偏移和元素 offset,item ### 隱性迭代工具 1. 列表解析 2. map, reduce和filter函數
                  <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>

                              哎呀哎呀视频在线观看