【问题标题】:How to prevent dict.update(new_dict) from adding empty data?如何防止 dict.update(new_dict) 添加空数据?
【发布时间】:2014-12-15 20:04:23
【问题描述】:

假设我有一个字典定义为:

dict_1['x']['y'] = 'something'

另一个字典定义为:

dict_2['x'] = {}

dict_2['x']['z'] = 'something else'

我怎样才能做到这一点

dict_1.update(dict_2) 仅添加 dict_2['x']['z'] = 'something else',但不添加 delete dict_1['x']['y'],因为 dict_2['x'] = {}.

【问题讨论】:

    标签: python dictionary nested


    【解决方案1】:
    dict_1['x'].update(dict_2['x'])
    

    【讨论】:

    • 也许更简单?这在我的代码中会非常详尽
    • 是不是因为你的 dict_1 有多个键?
    • 这个答案出现在低质量审查队列中,大概是因为您没有解释代码。如果你确实解释了(在你的回答中),你更有可能获得更多的支持——提问者更有可能学到一些东西!
    • 我个人认为他的回答还不错。是的,我的 dict_1 有大量的嵌套键。
    【解决方案2】:

    这递归地解决了问题。

    def mergeDicts(dict1, dict2):
        for key in dict2:
            if key in dict1:
                dict1[key] = mergeDicts(dict1[key], dict2[key])
            else:
                dict1[key] = dict2[key]
        return dict1
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-01
      • 1970-01-01
      相关资源
      最近更新 更多