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

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ## 問題 你想在迭代一個序列的同時跟蹤正在被處理的元素索引。 ## 解決方案 內置的 `enumerate()` 函數可以很好的解決這個問題: >>> my_list = ['a', 'b', 'c'] >>> for idx, val in enumerate(my_list): ... print(idx, val) ... 0 a 1 b 2 c 為了按傳統行號輸出(行號從1開始),你可以傳遞一個開始參數: >>> my_list = ['a', 'b', 'c'] >>> for idx, val in enumerate(my_list, 1): ... print(idx, val) ... 1 a 2 b 3 c 這種情況在你遍歷文件時想在錯誤消息中使用行號定位時候非常有用: def parse_data(filename): with open(filename, 'rt') as f: for lineno, line in enumerate(f, 1): fields = line.split() try: count = int(fields[1]) ... except ValueError as e: print('Line {}: Parse error: {}'.format(lineno, e)) `enumerate()` 對于跟蹤某些值在列表中出現的位置是很有用的。所以,如果你想將一個文件中出現的單詞映射到它出現的行號上去,可以很容易的利用 `enumerate()` 來完成: word_summary = defaultdict(list) with open('myfile.txt', 'r') as f: lines = f.readlines() for idx, line in enumerate(lines): # Create a list of words in current line words = [w.strip().lower() for w in line.split()] for word in words: word_summary[word].append(idx) 如果你處理完文件后打印 `word_summary` ,會發現它是一個字典(準確來講是一個 `defaultdict` ),對于每個單詞有一個 `key` ,每個 `key` 對應的值是一個由這個單詞出現的行號組成的列表。如果某個單詞在一行中出現過兩次,那么這個行號也會出現兩次,同時也可以作為文本的一個簡單統計。 ## 討論 當你想額外定義一個計數變量的時候,使用 `enumerate()` 函數會更加簡單。你可能會像下面這樣寫代碼: lineno = 1 for line in f: # Process line ... lineno += 1 但是如果使用 `enumerate()` 函數來代替就顯得更加優雅了: for lineno, line in enumerate(f): # Process line ... `enumerate()` 函數返回的是一個 `enumerate` 對象實例,它是一個迭代器,返回連續的包含一個計數和一個值的元組,元組中的值通過在傳入序列上調用 `next()` 返回。 還有一點可能并不很重要,但是也值得注意,有時候當你在一個已經解壓后的元組序列上使用 `enumerate()` 函數時很容易調入陷阱。你得像下面正確的方式這樣寫: data = [ (1, 2), (3, 4), (5, 6), (7, 8) ] # Correct! for n, (x, y) in enumerate(data): ... # Error! for n, x, y in enumerate(data): ...
                  <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>

                              哎呀哎呀视频在线观看