2024-09-18|閱讀時間 ‧ 約 22 分鐘

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 是非常推薦的做法。

    分享至
    成為作者繼續創作的動力吧!
    © 2024 vocus All rights reserved.