一、enumerate是什麼?
在Python中,我們經常需要遍歷一個列表或者元組,此時我們會使用for循環,如:
colors = ['red', 'green', 'blue'] for i in range(len(colors)): print(i, colors[i])
此時,在for循環中需要通過range(len(colors))來獲取colors列表的每一個元素,再通過colors[i]的方式來獲取特定元素。雖然這樣也能訪問到列表的每個元素,但是代碼顯得冗餘和不夠簡潔。
此時,Python提供了一個非常有用的工具:enumerate函數,它可以同時返回每個元素的索引和值,避免了在代碼中使用range和下標的操作,使得代碼更加簡單優美。示例代碼如下所示:
colors = ['red', 'green', 'blue'] for index, value in enumerate(colors): print(index, value)
輸出結果如下:
0 red 1 green 2 blue
可以看到,使用enumerate可以直接獲取列表的元素和序號,而不需要使用range和下標的操作。
二、如何使用enumerate?
enumerate()函數的參數很簡單,一個可迭代對象,一個指定索引起始位置的整數。其具體的參數形式如下:
enumerate(sequence, start=0)
例如:
fruits = ['apple', 'banana', 'orange'] for index, fruit in enumerate(fruits, start=1): print(index, fruit)
執行結果如下:
1 apple 2 banana 3 orange
可以看到,我們通過指定start參數,從1開始索引,而不是默認的0。
三、enumerate的返回值
enumerate()的返回值是一個可迭代的對象,每個元素是一個元組,元組的第一個元素是索引,第二個元素是原序列的元素。示例如下:
fruits = ['apple', 'banana', 'orange'] for index, fruit in enumerate(fruits): print((index, fruit))
執行結果如下:
(0, 'apple') (1, 'banana') (2, 'orange')
另外,返回值也可以通過list()轉化為列表,示例如下:
fruits = ['apple', 'banana', 'orange'] print(list(enumerate(fruits)))
輸出結果如下:
[(0, 'apple'), (1, 'banana'), (2, 'orange')]
四、enumerate的使用場景
enumerate()函數在以下三方面特別有用:
第1)、同時獲取索引和元素
在進行遍歷列表等可迭代對象的時候,我們經常需要同時獲得當前元素和它的索引。藉助enumerate()函數,我們可以輕易地同時獲取兩個值,而無需在代碼中使用索引來訪問列表元素。
第2)、Forelase結構中,使用enumerate構建字典
有時候,在進行迭代過程中,我們需要將序列中的元素作為鍵,索引作為值,以便於後續的操作。藉助enumerate()函數,我們可以快速構建一個字典。
fruits = ['apple', 'banana', 'orange'] dict_fruits = {fruit:index for index, fruit in enumerate(fruits)} print(dict_fruits)
輸出結果如下:
{'apple': 0, 'banana': 1, 'orange': 2}
可以看到,我們通過一個字典推導式,快速的構建出字典。
第3)、刪除可迭代對象中的指定元素
使用enumerate()函數時,同時可以還可以比較方便的刪除某些特定的元素,示例代碼如下:
fruits = ['apple', 'banana', 'orange'] for index, fruit in enumerate(fruits): if index == 1: del fruits[index] print(fruits)
輸出結果如下:
['apple', 'orange']
可以看到,當我們刪除索引為1的元素時,這裡使用enumerate()函數的值恰好也是1。
五、總結
本文主要講解了enumerate()函數的使用方法,從如何使用到返回值和使用場景都有所涉及。enumerate()函數是Python中非常好用的一個內置函數,希望大家能夠善加利用。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/185044.html