一、基本介紹
enumerate函數是Python內置函數之一,其功能是將一個可迭代對象轉換為一個索引序列,同時列出數據和數據下標。
# 代碼示例
fruits = ['apple', 'banana', 'orange']
for index, fruit in enumerate(fruits):
print(f'第 {index} 個水果是 {fruit}')
在這個例子中,數據列表fruits被傳遞給enumerate函數,返回一個包含元素和其相應下標的序列。對於每個元素,我們使用for循環打印出它們的下標和對應值。
需要注意的是,索引從0開始,而不是從1開始。
二、使用start參數控制起始索引
您還可以使用start參數來控制enumerate的起始索引。舉個例子:
# 代碼示例
fruits = ['apple', 'banana', 'orange']
for index, fruit in enumerate(fruits, start=1):
print(f'第 {index} 個水果是 {fruit}')
這裡我們使用start參數指定起始索引為1,而不是默認的0。
三、用enumerate生成字典
除了使用循環處理每個元素和其索引之外,enumerate函數還可以用於快速生成字典。
# 代碼示例
fruits = ['apple', 'banana', 'orange']
result = {index: fruit for index, fruit in enumerate(fruits)}
print(result)
這裡我們把每個元素和它的索引打包成一個元組,並用字典推導式將它們轉換為字典。
四、enumerate與zip的區別
zip函數是另一個常用的Python函數,它的功能是將多個可迭代對象打包成一個元組序列。
那麼,怎麼區分這兩個函數呢?基本的區別在於,enumerate可以返回元素的索引,而zip只能返回元素:
# 代碼示例
fruits = ['apple', 'banana', 'orange']
prices = [0.5, 0.25, 0.3]
for fruit, price in zip(fruits, prices):
print(f'{fruit} 的價格是 {price}')
for index, fruit in enumerate(fruits):
print(f'第 {index} 個水果是 {fruit}')
這裡我們使用zip函數將水果和它們的價格打包在一起,並用for循環打印出它們。然後在使用enumerate函數打印出每個水果的索引。可以看到,zip函數並沒有返回任何索引。
五、enumerate的局限性
enumerate函數不適用於所有可迭代對象,例如字典對象。
# 代碼示例
my_dict = {'apple': 0.5, 'banana': 0.25, 'orange': 0.3}
for index, fruit in enumerate(my_dict):
print(f'第 {index} 個水果是 {fruit}')
在這個例子中,我們嘗試使用enumerate函數來遍歷字典對象。但是,我們得到的只是字典的鍵,而不是值。這是因為字典對象本身並沒有順序。
六、結尾
至此,我們已經對Python中的enumerate函數有了比較深入的了解。通過這個函數,您可以更輕鬆地處理可迭代對象,並且使用它可以更方便地生成字典。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/183841.html