根据两个字典的不同创建字典

假设,如果我有一本字典,


dictA = {

         'flower': 

                 {

                  'jasmine': 10,

                  'roses': 

                        {

                         'red': 1,

                         'white': 2

                        }

                 },

        'fruit':

               {

                'apple':3

               }

        }

如果dictA更新(说到dictB)


dictB = {

         'flower': 

                 {

                  'jasmine': 10,

                  'roses': 

                         {

                          'red': 1,

                          'white': 2

                         }

                 },

         'fruit':

                 {

                  'apple':3,

                  'orange': 4

                 }

        }

现在我将如何获得仅包含新添加项目的字典(保留结构},例如,


difference(dictB, dictA) = {'fruit': {'orange': 4}}

通过这种方式,我会避免每次都存储多余的项目,而是有一个较小的字典只显示新添加的项目


这种对字典的操作有很多实际用途,但不幸的是更难


任何帮助将不胜感激,并在此先感谢


HUH函数
浏览 90回答 1
1回答

四季花海

使用DictDiffer:from dictdiffer import diff, patch, swap, revertdictA = {         'flower':                 {                  'jasmine': 10,                  'roses':                        {                         'red': 1,                         'white': 2                        }                 },        'fruit':               {                'apple':3               }        }dictB = {         'flower':                 {                  'jasmine': 10,                  'roses':                         {                          'red': 1,                          'white': 2                         }                 },         'fruit':                 {                  'apple':3,                  'orange': 4                 }        }result = diff(dictA, dictB)# [('add', 'fruit', [('orange', 4)])]print(f'Diffrence :\n{list(result)}')patched = patch(result, dictA)# {'flower': {'jasmine': 10, 'roses': {'red': 1, 'white': 2}}, 'fruit': {'apple': 3}}print(f'Apply diffrence :\n{patched}')
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python