用递归函数删除嵌套字典中的空字典

2024-05-14 23:18:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图从嵌套字典中删除非值。我的第一次尝试很好,但不幸的是,指向现在空的dicts的键仍然存在。在

所以如果我这么做了:

pass1 = stripper(my_dict)
return stripper(pass1)

这是可行的,但我认为可能有一个更优雅的嵌套解决方案?在

^{pr2}$

编辑:

失败的示例,下面的dict返回为{'foo': 'bar', 'bar': None}

{
    'foo': 'bar',
    'bar': {
        'foo': None,
        'one': None
    }
}

Tags: none编辑return字典foomybar解决方案
1条回答
网友
1楼 · 发布于 2024-05-14 23:18:22

口述理解当然很简洁,但如果你把它扩展开来,解决方案就会变得更加明显:

def stripper(self, data):
    new_data = {}
    for k, v in data.items():
        if isinstance(v, dict):
            v = stripper(v)
        if not v in (u'', None, {}):
            new_data[k] = v
    return new_data

相关问题 更多 >

    热门问题