替换嵌套字典中的空字典

时间:2018-06-27 18:14:47

标签: python

我有一个嵌套的字典,其结构如下:

{"a":{},"b":{"c":{}}}

每个键都是一个字符串,每个值都是一个字典。 我需要将每个空字典替换为""。我该怎么办?

3 个答案:

答案 0 :(得分:6)

使用递归:

def foo(the_dict):
    if the_dict == {}:
        return ""
    return {k : foo(v) for k,v in the_dict.items()}

您在这里有一个live example

答案 1 :(得分:2)

递归检查空字典的值,如果是,则替换为空字符串。

>>> d = {"a":{},"b":{"c":{}}}
>>> def replace_empty(d):
...     for k, v in d.items():
...         if not bool(v):
...             d[k] = ""
...         else:
...             d[k] = replace_empty(v)
...     return d
>>> replace_empty(d)
{'a': '', 'b': {'c': ''}}

答案 2 :(得分:1)

让字典为cd,然后:-

>>> def foo(cd):
...     for x in cd:
...             if cd[x] == {}:
...                     cd[x] = ""
...             else: foo(cd[x])
...     return cd

>>> cd = {"a":{},"b":{"c":{}}}
>>> foo(cd)
{'a': '', 'b': {'c': ''}}

思维过程如下:-

首先,使处理器处理您的字典,并用空字符串替换所有空字典。然后,让所有词典都有机会与该处理器会面。