有没有一种方法可以在不更改任何包含的可变类型的情况下更新字典?

我有这种结构的设置字典:


main_dict = {

    'a': {

        'a1': 1,

        'a2': 2,

    },

    'b': {

        'bb': {

            'bb1' : 1,

            'bb2' : 2,

        },

    },

}

然后,我有了一些类,其中包含对包含在中的字典的引用main_dict,例如:


class B:

    def __init__(self, settings):

        self.settings = settings


my_b = B(main_dict['b'])

assert(my_b.settings is main_dict['b'])

因此,我可以更新其中的不可变值,main_dict并且这些更新将反映在中,my_b因为my_b.settings is main_dict['b']。


但是,我现在有一个新的根字典,其中的新设置遵循相同的结构:


new_dict = {

    'a': {

        'a1': 11,

        'a2': 22,

    },

    'b': {

        'bb': {

            'bb1' : 11,

            'bb2' : 22,

        },

    },

}

是否有一种简单通用的方法将所有不可变值复制new_dict到中main_dict,从而使my_b中的引用保持原样?


慕桂英546537
浏览 140回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python