2024年9月17日 星期二

 Python 中的 enumerate 函數詳解

今天讓我們來聊聊 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 是非常推薦的做法。

什麼是 Excel 巨集?

簡單介紹 Excel 巨集( Macro ) 是一種可以自動執行重複性任務的工具,是一種程式碼,它使用 VBA ( Visual Basic for Applications ) 編寫腳本,讓 Excel 可以自動處理大量數據、格式化報表、計算公式等工作。透過巨集,使用者...