迭代字典

我們一樣從一個簡單的例子開始:

person = {
    'name': 'dokelung',
    'age': 28,
    'city': 'Taipei'
}

要迭代這個字典的值,對於初學者而言似乎沒有頭緒,若稍微去查一下字典的方法可能會出現下面的寫法:

for key in person.keys():
    print(person[key])

或是精簡一點的寫法:

for key in person:
    print(person[key])

這兩種寫法也是沒什麼錯誤,但是如果我們真的"只"關心字典中的"值",其實我們也可以避面迴圈內的取值:

for value in person.values():
    print(value)

同時迭代鍵與值

不過,迭代字典是一個無序的動作,所以只是拿出字典中的值在一般情況下都沒有太大意義,我們通常在意的是鍵與值的關係,所以這種寫法很容易出現:

for key in person:
    print(key, person[key])

以下是結果:

age 28
city Taipei
name dokelung

下面這個做法是比較 pythonic 的:

for key, value in person.items():
    print(key, value)

items 方法會將字典中的鍵與對應的值組成 tuple:

>>> list(person.items())
[('age', 28), ('city', 'Taipei'), ('name', 'dokelung')]

使用了 items 方法就可以貫徹我們的精神:別在迴圈中取值!

results matching ""

    No results matching ""