d = {
"test": 1,
"sample": 2,
"example": 3,
"product": 4,
"software": 5,
"demo": 6,
}
filter_keys = ["test","sample","example","demo"]
我想創建一個只包含從第一個字典,它的鍵出現在列表中的項目一個新的字典。換句話說,我想:
d2 = {
"test": 1,
"sample": 2,
"example": 3,
"demo": 6,
}
我可以用一個循環做到這一點:
d2 = {}
for k in d.keys():
if (k in filter_keys):
d2[k] = d[k]
但這似乎非常「非Python化」。我也猜測,如果你有一個巨大的字典,說5,000個左右的項目,與新的字典相比,不斷增加的新項目會比較直接。
此外,你希望能夠處理錯誤。如果列表中包含的內容不是字典中的關鍵字,則應該忽略它。或者它可能會被添加到新的字典中,但值爲None。
有沒有更好的方法來實現這個目標?
你已經問了很多問題而不接受這些問題的答案。你應該接受答案。 – EML 2014-09-09 22:54:27