迭代字典
我們一樣從一個簡單的例子開始:
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
方法就可以貫徹我們的精神:別在迴圈中取值!