我真的不知道怎麼稱呼這個問題,但在我目前的項目中,我已經有太多避免它的解決方法,所以我在尋求幫助。內容感知字典更新
鑑於此示例代碼,
def sensitive_update(sensitive, updated):
# ???
sensitive_data = {'user1': {'password' : '1234'}, 'user2': {'password': '4321'}}
updated_data = [
{'user1': {'id': 13}},
{'user2': {'password': '0000'}},
{'user3': {'id': 14}}
]
for data in updated_data:
sensitive_update(sensitive_data, data)
print(sensitive_data)
# should print
# {'user1': {'id': 13, 'password': '1234'}, 'user2': {'password': '0000'}, 'user3': {'id': 14}}
確實存在寫入sensitive_update
函數的大多-內置或短的方式,或通過遞歸地不可避免的字典中的每個值被手動循環?
編輯: 附加信息:功能合併所有可合併類型的字典,並創建一個不存在的
是每個元素'updated_data'總是一個帶有單個鍵的字典?你是什麼意思手動循環通過字典?你應該循環遍歷'updated_data'列表...不行? –
'updated_data'可以有多個鍵。 手動循環意味着檢查'sensitive'中的匹配鍵是否來自'updated'中的每個鍵,對值和它們的值執行相同的操作,直到找到非dict。 –
updated_data *沒有鑰匙*。這是一個列表。請儘量準確,否則人們會對你的意思做出不同的假設,並且已經有一個非模棱兩可的術語來避免這個問題。 –