一、什麼是enumerate函數
在 Python 中,有時我們需要遍歷列表或其他可迭代對象,並在同一時間獲取當前元素的索引。通常,我們會使用 for 循環和 range 函數,但這種方法不太方便。為了解決這個問題,Python 提供了 enumerate() 函數。
enumerate() 函數將一個可迭代對象轉換為枚舉器,每個枚舉器元素由一對元組 (index, value) 組成,其中 index 是元素的索引,value 是元素的值。下面是如何使用枚舉器的示例:
lst = ['apple', 'banana', 'orange'] for index, value in enumerate(lst): print(index, value)
輸出:
0 apple 1 banana 2 orange
在上面的示例中,我們將列表 lst 轉換為枚舉器,並使用 for 循環遍歷該枚舉器。使用元組解包,在每一次迭代中,我們可以得到當前元素的索引和值。
二、使用enumerate追蹤代碼執行進度
我們經常需要追蹤長時間運行的代碼的執行進度。使用 enumerate() 函數,我們可以輕鬆地打印出當前代碼運行的進度。
在下面的示例中,我們使用 Python 內置函數 time.sleep() 模擬較長時間的運行時間。然後,使用一個簡單的循環和 enumerate() 函數,我們在每一輪循環中打印出代碼運行的進度。
import time for i, item in enumerate(range(100)): time.sleep(0.1) print(f"Percentage complete: {(i + 1) / 100 * 100:.2f}%")
輸出:
Percentage complete: 1.00% Percentage complete: 2.00% Percentage complete: 3.00% ... ... Percentage complete: 98.00% Percentage complete: 99.00% Percentage complete: 100.00%
在上面的示例中,我們首先使用 range() 函數生成一個包含 100 個元素的列表。然後,在 for 循環中,我們使用 time.sleep() 函數暫停 0.1 秒,以模擬代碼的運行時間。每一次循環,我們都使用 enumerate() 函數得到一個包含當前索引和元素的元組,然後打印出代碼運行的進度。
三、用enumerate優化字典元素的遍歷
當我們使用字典時,有時需要遍歷其元素。雖然我們可以使用 for 循環和 items() 方法遍歷字典元素,但使用 enumerate() 函數可以更方便地追蹤當前元素的索引。
在下面的示例中,我們使用一個簡單的字典,其中包含幾個不同顏色的水果的名稱和數量。然後,我們使用 for 循環和 enumerate() 函數遍歷字典的元素,同時追蹤當前元素的索引。
fruits = {'apple': 3, 'banana': 4, 'orange': 2} for i, (key, value) in enumerate(fruits.items()): print(f"#{i + 1}. {key.capitalize()}: {value}")
輸出:
#1. Apple: 3 #2. Banana: 4 #3. Orange: 2
在上面的示例中,我們使用 items() 方法將字典的鍵值對分別提取並遍歷。使用 for 循環,我們獲得了一個每一次循環包含鍵值對元組的生成器。
然後,我們使用 enumerate() 函數遍歷生成器的元素,並打印出當前元素的鍵和值。我們還使用 capitalize() 方法將水果的名稱的首字母大寫,以使輸出更加美觀。
四、結論
在 Python 中,enumerate() 函數提供了一種方便的方法來遍歷並追蹤序列中元素的索引。使用 enumerate() 函數,我們可以輕鬆地打印出代碼運行的進度,或以更可讀的方式遍歷複雜的數據結構,例如字典。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/181430.html