我在使python函数递归正常工作时遇到了一些困难。最终我找到了可行的方法,但我想了解为什么我的初始解决方案无效。
我想将平面列表转换为多级字典(例如[1,2,3]变为{1:{2:3}}
以下是我的尝试:
def build(list, dict={}):
el = list.pop(0)
if not list:
return el
dict[el] = build(list)
然而,这不起作用。如果我碰到最后一行
dict[el] = build(list,{})
确实如此。我想我理解声明中的可选参数dict = {}错误,有人能解释一下这里发生了什么吗?
谢谢!