不同來源的字典編纂的數據時,這是一個常見的情況:在Python迭代過程中添加新密鑰或附加到字典中舊密鑰的最有效方法?
假設你有一個存儲的東西列出,比如事情的字典,我喜歡:
likes = {
'colors': ['blue','red','purple'],
'foods': ['apples', 'oranges']
}
,並與一些相關的第二詞典值是:
favorites = {
'colors':'yellow',
'desserts':'ice cream'
}
然後你要遍歷「收藏夾」對象,無論是在該對象的項目進行適當的鍵追加到列表中的「喜歡」字典或添加新科y,它的值是一個包含「收藏夾」中的值的列表。
有幾種方法可以做到這一點:
for key in favorites:
if key in likes:
likes[key].append(favorites[key])
else:
likes[key] = list(favorites[key])
或
for key in favorites:
try:
likes[key].append(favorites[key])
except KeyError:
likes[key] = list(favorites[key])
還有更多,以及...
我一般用第一種語法,因爲它感覺更Python ,但如果還有其他更好的方法,我很想知道它們是什麼。謝謝!
2.5及更高版本,或者您必須定義您自己的defaultdict類。 – 2009-12-11 07:28:57