为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

HUH函数 2023-06-13 15:34:47
假设,如果我有一本字典,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}}通过这种方式,我会避免每次都存储多余的项目,而是有一个较小的字典只显示新添加的项目这种对字典的操作有很多实际用途,但不幸的是更难任何帮助将不胜感激,并在此先感谢
查看完整描述

1 回答

?
四季花海

TA贡献1811条经验 获得超5个赞

使用DictDiffer:


from dictdiffer import diff, patch, swap, revert


dictA = {

         '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}')


查看完整回答
反对 回复 2023-06-13
  • 1 回答
  • 0 关注
  • 89 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信