首頁 >後端開發 >Python教學 >如何在保留特定值的同時更新可變深度的巢狀字典?

如何在保留特定值的同時更新可變深度的巢狀字典?

DDD
DDD原創
2024-11-08 03:31:01461瀏覽

How to Update Nested Dictionaries of Variable Depth While Preserving Specific Values?

更新可變深度的巢狀字典

嘗試使用另一個字典的內容更新巢狀字典(dictionary1) 時遇到困境(更新),同時保留嵌套結構中的特定值。具體來說,您希望更新字典1中的“level2”鍵而不覆蓋“levelA”值。

為了解決這個挑戰,提出了一個遞歸解決方案。以下Python程式碼實作了這個方法:

def merge_dicts(dict1, dict2):
    for key in dict2:
        if key in dict1 and isinstance(dict1[key], dict) and isinstance(dict2[key], dict):
            merge_dicts(dict1[key], dict2[key])
        else:
            dict1[key] = dict2[key]

該函數遞歸遍歷兩個字典並根據以下規則更新值:

  • 如果兩個鍵都存在於兩個字典中且字典本身,函數遞歸呼叫自身,合併嵌套的字典。
  • 否則,dict2 中的值將會被指派給 dict1。

透過利用這種遞歸方法,您可以修改不同深度的巢狀字典,同時保留特定值。

以上是如何在保留特定值的同時更新可變深度的巢狀字典?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn