Python 中的 enumerate 函數詳解

閱讀時間約 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
    查看全部
    發表第一個留言支持創作者!
    介面 標籤操作 標籤點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
    這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
    Thumbnail
    美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
    Thumbnail
    Faker昨天真的太扯了,中國主播王多多點評的話更是精妙,分享給各位 王多多的點評 「Faker是我們的處境,他是LPL永遠繞不開的一個人和話題,所以我們特別渴望在決賽跟他相遇,去直面我們的處境。 我們曾經稱他為最高的山,最長的河,以為山海就是盡頭,可是Faker用他28歲的年齡...
    上兩篇有關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
    這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
    Thumbnail
    美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
    Thumbnail
    Faker昨天真的太扯了,中國主播王多多點評的話更是精妙,分享給各位 王多多的點評 「Faker是我們的處境,他是LPL永遠繞不開的一個人和話題,所以我們特別渴望在決賽跟他相遇,去直面我們的處境。 我們曾經稱他為最高的山,最長的河,以為山海就是盡頭,可是Faker用他28歲的年齡...
    上兩篇有關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
    本文將介紹自定函式及應用,利用程式範例解釋為什麼要用到自定函式 自定函式好處當然就是,讓你的程式碼看起來比較簡潔,在重複使用到的程式碼區塊,可以包裝成函式,讓你重複使用它。