Python 中的 enumerate 函數詳解

更新於 2024/09/18閱讀時間約 1 分鐘

今天讓我們來聊聊 Python 中的『enumerate』這個函數,

enumerate 是 Python 中一個非常有用的內建函數,它允許我們在迭代序列(如串列、數組(元組)或字串)時,同時獲取串列元素的索引和值。這在需要追蹤元素位置的情況下特別方便,不需要手動管理索引變數。


◎enumerate 的基本語法:

enumerate(iterable, start=0)


參數說明:

  • iterable:一個可迭代對象,如列表、元組、字符串等。
  • start:指定索引的起始值,默認從 0 開始。



◎主要功能:

自動生成索引
使用 enumerate 函數,可以輕鬆地在迭代序列時,同時獲取每個元素的索引,無需額外的索引變量。

fruits = ["apple", "banana", "cherry"]
for index, fruit in enumerate(fruits):
print(f"Index: {index}, Fruit: {fruit}")

輸出:

Index: 0, Fruit: apple
Index: 1, Fruit: banana
Index: 2, Fruit: cherry


指定起始索引

通過設置 start 參數,可以改變索引的起始值。

fruits = ["apple", "banana", "cherry"]
for index, fruit in enumerate(fruits, start=1):
print(f"Index: {index}, Fruit: {fruit}")

輸出:

Index: 1, Fruit: apple
Index: 2, Fruit: banana
Index: 3, Fruit: cherry


與其他函數結合使用

enumerate 可以與其他函數(如列表生成式、字典生成式等)結合使用,從而更加靈活地操作數據。

  • 列表生成式:
fruits = ["apple", "banana", "cherry"]
indexed_fruits = [(index, fruit) for index, fruit in enumerate(fruits)]
print(indexed_fruits)

輸出:

[(0, 'apple'), (1, 'banana'), (2, 'cherry')]
  • 字典生成式:
fruits = ["apple", "banana", "cherry"]
fruit_dict = {index: fruit for index, fruit in enumerate(fruits, start=1)}
print(fruit_dict)

輸出:

{1: 'apple', 2: 'banana', 3: 'cherry'}


處理多維數據

enumerate 同樣可以用於多維列表或其他多維結構的迭代,並且可以嵌套使用來處理多層索引。

matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
for i, row in enumerate(matrix):
for j, value in enumerate(row):
print(f"matrix[{i}][{j}] = {value}")

輸出:

matrix[0][0] = 1
matrix[0][1] = 2
matrix[0][2] = 3
matrix[1][0] = 4
matrix[1][1] = 5
matrix[1][2] = 6
matrix[2][0] = 7
matrix[2][1] = 8
matrix[2][2] = 9


◎enumerate 的應用時機:

  • 遍歷列表並同時跟蹤索引: 在需要處理列表中的元素時,經常需要同時知道元素的位置。enumerate 可以輕鬆實現這一點。
  • 數據分析和報表生成: 在處理數據時,常常需要輸出帶有序號的結果列表。enumerate 使這個過程更加簡單和直觀。
  • 多維數據的處理: 在迭代嵌套結構時,enumerate 可以幫助我們在多層迭代中跟蹤元素的多維索引。


◎總結

enumerate 是一個功能強大且易於使用的工具,它可以幫助我們在處理串列時更輕鬆地管理索引。如果在迭代過程中經常需要同時使用索引和元素,那麼使用 enumerate 是非常推薦的做法。

    留言0
    查看全部
    avatar-img
    發表第一個留言支持創作者!
    介面 標籤操作 標籤點2下可將標籤隱藏摺疊,再點2下可展開功能區。 在折疊的標籤上按右鍵,點選『摺疊功能區』,可取消摺疊並展開功能區。 介面色彩 『檔案』>選項→一般>Office佈景主題 選取 拖曳 滑鼠指標放在段落的前方(呈現白色箭頭)點一下,選取一行。 滑鼠指標放在段落內
    ●Oracle VM(Virtual Machine) VirtualBox 功能:開放原始碼的虛擬機器軟體,所謂的虛擬機器,是一種可以在一般電腦平台中與使用者之間建立的一個環境,使用者透過虛擬機器建立的環境來操作其軟體。
    ●   print 函式基本格式: print是Python 的內建輸出函式,主要功用為『將資料輸出到螢幕上』,基本語法格式如下: print(輸出項目1, 輸出項目2,…..,sep=’分隔字元’, end=’結束字元’) n   多個輸出項目間以逗號隔開 n   sep:分隔字元;輸出多
    介面 標籤操作 標籤點2下可將標籤隱藏摺疊,再點2下可展開功能區。 在折疊的標籤上按右鍵,點選『摺疊功能區』,可取消摺疊並展開功能區。 介面色彩 『檔案』>選項→一般>Office佈景主題 選取 拖曳 滑鼠指標放在段落的前方(呈現白色箭頭)點一下,選取一行。 滑鼠指標放在段落內
    ●Oracle VM(Virtual Machine) VirtualBox 功能:開放原始碼的虛擬機器軟體,所謂的虛擬機器,是一種可以在一般電腦平台中與使用者之間建立的一個環境,使用者透過虛擬機器建立的環境來操作其軟體。
    ●   print 函式基本格式: print是Python 的內建輸出函式,主要功用為『將資料輸出到螢幕上』,基本語法格式如下: print(輸出項目1, 輸出項目2,…..,sep=’分隔字元’, end=’結束字元’) n   多個輸出項目間以逗號隔開 n   sep:分隔字元;輸出多
    你可能也想看
    Google News 追蹤
    Thumbnail
    *合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
    上兩篇有關List的文章,此篇文上兩章的延續,整理一些常用的方法和操作。 [Python]List(列表)新增、修改、刪除元素 [Python基礎]容器 list(列表),tuple(元組) 還有一些常用的 list 方法和操作,讓你能更靈活地處理列表數據
    Thumbnail
    在 Python 中,print( ) 函數用於將結果輸出到螢幕上。當你嘗試將不同資料型別(例如字串和數字)混合在一起輸出時,print( )函數無法直接處理這些不同型別的資料,因此你需要先將它們轉換為相同的資料型別。通常,這意味著需要將數字轉換為字串型別,以便與其他字串一同輸出。 雖然我們也可以
    在Python中, 要寫一個完整的「符元化類 Tokenizer Class」, 這個Class需要的功能有: 1.「編碼 Encode」:將「文本 Text」分割成「符元 Token」。 2.「詞彙 Vocabulary」:將「符元 Token」映射到「符元ID TokenID
    Thumbnail
    在 Python 中,dir() 函式用於列舉對象的所有屬性和方法。這包括對象的內建屬性、方法以及自定義的屬性和方法。以下是一個簡單的示例: 列舉所有屬性與方法 class MyClass: def __init__(self): self.attribute1 = 42
    Thumbnail
    本文介紹了Python中函式引數的*args和**kwargs用法,通過*args處理可變數量的位置引數,通過**kwargs處理可變數量的關鍵字引數。不僅介紹了相應的語法和程式範例,還解釋了它們的順序問題和建議的慣例用法。
    Thumbnail
    本文介紹了Python中zip與enumerate函式的使用,以及它們的語法說明和程式範例。zip函式允許同時迭代多個可迭代對象,這使得程式碼更簡潔;而enumerate函式則在迭代時,提供元素的索引,使得實用工具,尤其是當需要追蹤元素的位置時。
    Thumbnail
    本文介紹了串列運算式的應用,以及與Lambda匿名函式方法的比較,並提供了程式範例。串列運算式提供了一種簡潔的語法,用於創建、轉換和過濾列表。lambda函式用於創建匿名函式,通常用於簡單的操作。建議在比較複雜的情況下使用一般for迴圈加if來表示。
    Thumbnail
    列表(List)和元組(Tuple)都是 Python 中用來存儲集合元素的數據結構,兩者看起來很像,在初學時很容易搞混,所以觀念要建立好。 可以把列表(List)和元組(Tuple)想像成是一個容器,什麼元素都可以塞
    Thumbnail
    本文將介紹自定函式及應用,利用程式範例解釋為什麼要用到自定函式 自定函式好處當然就是,讓你的程式碼看起來比較簡潔,在重複使用到的程式碼區塊,可以包裝成函式,讓你重複使用它。
    Thumbnail
    *合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
    上兩篇有關List的文章,此篇文上兩章的延續,整理一些常用的方法和操作。 [Python]List(列表)新增、修改、刪除元素 [Python基礎]容器 list(列表),tuple(元組) 還有一些常用的 list 方法和操作,讓你能更靈活地處理列表數據
    Thumbnail
    在 Python 中,print( ) 函數用於將結果輸出到螢幕上。當你嘗試將不同資料型別(例如字串和數字)混合在一起輸出時,print( )函數無法直接處理這些不同型別的資料,因此你需要先將它們轉換為相同的資料型別。通常,這意味著需要將數字轉換為字串型別,以便與其他字串一同輸出。 雖然我們也可以
    在Python中, 要寫一個完整的「符元化類 Tokenizer Class」, 這個Class需要的功能有: 1.「編碼 Encode」:將「文本 Text」分割成「符元 Token」。 2.「詞彙 Vocabulary」:將「符元 Token」映射到「符元ID TokenID
    Thumbnail
    在 Python 中,dir() 函式用於列舉對象的所有屬性和方法。這包括對象的內建屬性、方法以及自定義的屬性和方法。以下是一個簡單的示例: 列舉所有屬性與方法 class MyClass: def __init__(self): self.attribute1 = 42
    Thumbnail
    本文介紹了Python中函式引數的*args和**kwargs用法,通過*args處理可變數量的位置引數,通過**kwargs處理可變數量的關鍵字引數。不僅介紹了相應的語法和程式範例,還解釋了它們的順序問題和建議的慣例用法。
    Thumbnail
    本文介紹了Python中zip與enumerate函式的使用,以及它們的語法說明和程式範例。zip函式允許同時迭代多個可迭代對象,這使得程式碼更簡潔;而enumerate函式則在迭代時,提供元素的索引,使得實用工具,尤其是當需要追蹤元素的位置時。
    Thumbnail
    本文介紹了串列運算式的應用,以及與Lambda匿名函式方法的比較,並提供了程式範例。串列運算式提供了一種簡潔的語法,用於創建、轉換和過濾列表。lambda函式用於創建匿名函式,通常用於簡單的操作。建議在比較複雜的情況下使用一般for迴圈加if來表示。
    Thumbnail
    列表(List)和元組(Tuple)都是 Python 中用來存儲集合元素的數據結構,兩者看起來很像,在初學時很容易搞混,所以觀念要建立好。 可以把列表(List)和元組(Tuple)想像成是一個容器,什麼元素都可以塞
    Thumbnail
    本文將介紹自定函式及應用,利用程式範例解釋為什麼要用到自定函式 自定函式好處當然就是,讓你的程式碼看起來比較簡潔,在重複使用到的程式碼區塊,可以包裝成函式,讓你重複使用它。