我有一个嵌套的字典,其结构如下:
{"a":{},"b":{"c":{}}}
每个键都是一个字符串,每个值都是一个字典。
我需要将每个空字典替换为""
。我该怎么办?
答案 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': ''}}
思维过程如下:-
首先,使处理器处理您的字典,并用空字符串替换所有空字典。然后,让所有词典都有机会与该处理器会面。