Python是一種高級編程語言,具有優雅,簡潔,易讀的特點,其對迭代器和生成器的支持非常好,極大地方便了程序員的開發。在Python中,有一個非常重要的函數——enumerate函數,它可以讓我們在遍歷列表、字元串等可迭代對象時獲得元素的下標和值,這樣可以讓我們更加方便的進行處理。
一、常規使用
lst = ['apple', 'banana', 'pear']
for index, value in enumerate(lst):
print(index, value)
在這個例子中,我們定義了一個列表lst,然後用for循環遍歷這個列表,使用enumerate函數獲取到每一個元素的下標和值。在下面的輸出結果中,我們可以看到,enumerate函數給每個元素都加了一個下標,從0開始依次增加。可以發現,使用這個函數,我們得到的元素是一個元組,第一個元素是原來的下標,第二個元素是原來的值。在實際使用中,我們可以根據需求來選擇只使用下標或只使用值。
輸出結果:
0 apple
1 banana
2 pear
二、使用start參數
lst = ['apple', 'banana', 'pear']
for index, value in enumerate(lst, start=1):
print(index, value)
在這個例子中,我們傳入了另一個參數start,這個參數的作用是指定枚舉的起始值,即原來的下標從start開始遞增。上面的例子中,start=1,所以下標從1開始遞增。這種用法在有些情況下非常有用,比如說列印排名時以1開始遞增。
輸出結果:
1 apple
2 banana
3 pear
三、使用enumerate函數轉換字典
lst = ['apple', 'banana', 'pear']
dct = dict(enumerate(lst))
print(dct)
在這個例子中,我們使用了dict函數將一個可迭代對象轉換成一個字典。其中,enumerate函數返回的是一個可迭代的對象,每次迭代都會返回一個元組,元組的第一個元素是原來的下標,第二個元素是原來的值。因此,通過dict函數,我們可以將這個可迭代對象的元素全部轉換為鍵值對,創建一個字典。
輸出結果:
{0: ‘apple’, 1: ‘banana’, 2: ‘pear’}
四、使用enumerate函數擴展列表
lst = ['apple', 'banana', 'pear']
lst2 = ['orange', 'watermelon', 'grape']
for index, value in enumerate(lst):
lst[index] = value + ' ' + lst2[index]
print(lst)
在這個例子中,我們定義了兩個列表lst和lst2,我們希望將這兩個列表對應的元素合併成一個新的列表。使用enumerate函數,我們可以獲得每一個元素的下標和值,然後在lst中修改每一個元素,將lst2中對應的元素加到lst中。
輸出結果:
[‘apple orange’, ‘banana watermelon’, ‘pear grape’]
五、使用enumerate函數與zip函數結合使用
lst1 = ['a', 'b', 'c']
lst2 = [1, 2, 3]
for i, (x, y) in enumerate(zip(lst1, lst2)):
print(i, (x, y))
在這個例子中,我們結合使用了enumerate函數和zip函數。zip函數會將兩個可迭代對象中對應位置的元素打包成一個元組,然後返回一個可迭代的zip對象,我們可以用for循環遍歷這個zip對象。在這個例子中,我們使用enumerate函數獲取到每一個元素的下標和值,使用zip函數將兩個列表對應的元素打包成元組,然後在for循環中遍歷這個zip對象,獲取每一個元組,在元組中我們用x和y來分別表示lst1和lst2中對應位置的元素,輸出i和元組即可。
輸出結果:
0 (‘a’, 1)
1 (‘b’, 2)
2 (‘c’, 3)
六、總結
enumerate函數是Python中一個非常常用的函數,它可以讓我們在遍歷列表、字元串等可迭代對象時獲得元素的下標和值,這樣可以讓我們更加方便的進行處理。在使用enumerate函數時,我們可以傳入start參數來指定枚舉的起始值,使用enumerate函數和zip函數結合也是我們常用的一種技巧。除此之外,我們還可以使用enumerate函數來擴展列表或者將可迭代對象轉換成字典,極大地方便了我們的開發工作。
原創文章,作者:LBVA,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/149430.html