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']))
這是我現在擁有的一段代碼。我想要做的是將嵌套字典中的每個子字典轉換爲字典的子類,即MyDict。 但是,我的遞歸邏輯只改變了第一級子字典。如何修改這個遞歸函數?將嵌套字典中的每個子字典轉換爲Python中的defaultdict
一個明顯的缺陷就是裏面,你從來沒有調用'nest_dict()'函數。另外,'pass'拼寫錯誤。另外,'dct ['a'] ['b'] ['c']'是字符串'd'。它不會受到'nest_dict()'的影響。請創建一個簡短,完整的程序,實際運行並實際演示您的問題。將該程序(從不重新輸入)複製粘貼到您的問題以及其實際和希望的輸出中。有關更多信息,請參見[mcve]。 –