【发布时间】:2017-07-25 19:29:02
【问题描述】:
class MyDict(dict):
pass
def nest_dict(dct):
dct = MyDict(dct)
for k, v in dct.items():
if isinstance(v, dict):
dct[k] = MyDict(v)
nest_dict(v)
return dct
dct = {'a':{'b':{'c':'d'}}}
print(type(nest_dict(dct)['a']['b']))
这是我现在拥有的一段代码。我想要做的是将嵌套字典中的每个子字典转换为 dict 的子类,即 MyDict。 但是,我的递归逻辑只改变了子字典的第一级。如何修改这个递归函数?
【问题讨论】:
-
一个明显的缺陷是您从不调用
nest_dict()函数。此外,pass拼写错误。此外,dct['a']['b']['c']是字符串d。它永远不会受到nest_dict()的影响。请创建一个简短而完整的程序,该程序可以实际运行并实际演示您的问题。将该程序(永远不要重新输入)连同它的实际输出和期望输出一起复制并粘贴到您的问题中。请参阅minimal reproducible example 了解更多信息。
标签: python dictionary recursion