在 Python 中列舉字典

Manav Narula 2023年10月10日
在 Python 中列舉字典

Python 中的 enumerate() 函式返回一個列舉型別的物件,並新增一個計數器變數來迭代一個列表或其他型別的集合。它使在這類物件上的迴圈變得更容易。

當我們把一個列舉物件傳遞給 list() 函式時,我們可以檢視它的內容。例如:

l = ["a", "b", "c"]
print(list(enumerate(l)))

輸出:

[(0, 'a'), (1, 'b'), (2, 'c')]

我們也可以將 enumerate() 函式用於字典。

以下示例顯示了一個基本示例。

d1 = {"a": 15, "b": 18, "c": 20}

for i, j in enumerate(d1):
    print(i, j)

輸出:

0 a
1 b
2 c

請注意,我們直接將字典傳遞給 enumerate() 函式,它只將計數器變數分配給字典的鍵而不是值。所以當我們在這個物件上迭代時,我們只能訪問計數器變數和字典的鍵。

為了同時列舉鍵和值,我們可以使用字典 items() 方法。items() 方法返回一個鍵值對為元組的物件。下面的例子顯示了我們如何使用 items() 方法和 enumerate() 函式,並同時訪問鍵和其對應的值。

d1 = {"a": 15, "b": 18, "c": 20}

for i, (j, k) in enumerate(d1.items()):
    print(i, j, k)

輸出:

0 a 15
1 b 18
2 c 20

如果我們只想要沒有鍵的字典元素,我們可以使用 values() 函式。它返回一個包含字典值的列表。

下面的程式碼顯示瞭如何操作。

d1 = {"a": 15, "b": 18, "c": 20}

for i, j in enumerate(d1.values()):
    print(i, j)

輸出:

0 15
1 18
2 20
作者: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

相關文章 - Python Dictionary