Python 使用递归将项添加到字典
我在学习递归,有个问题 如果我尝试创建一个递归函数来向列表中添加项,那么一切都可以。 例如: 如果我想创建一个递归函数来在字典中添加项,那么会出现几个错误。 例如,我需要创建一个dict={lion:0,rat:1}的字典 我尝试过此代码,但不起作用:Python 使用递归将项添加到字典,python,recursion,Python,Recursion,我在学习递归,有个问题 如果我尝试创建一个递归函数来向列表中添加项,那么一切都可以。 例如: 如果我想创建一个递归函数来在字典中添加项,那么会出现几个错误。 例如,我需要创建一个dict={lion:0,rat:1}的字典 我尝试过此代码,但不起作用: def recursion(n): if n == 0: return {"lion": 0} else: return {"rat":1} + recursion(n-1) 出现此错误:TypeError:不支持+:“dict
def recursion(n):
if n == 0:
return {"lion": 0}
else:
return {"rat":1} + recursion(n-1)
出现此错误:TypeError:不支持+:“dict”和“dict”的操作数类型
我还尝试了以下代码:
def recursion(n):
if n == 0:
dict = {"lion": 0}
return dict
else:
dict = {"rat": 1}
return dict.update(recursion(n-1))
但回报是没有的
我的问题是如何在不使用更多功能和字典全局设置的情况下使用lion{0,rat:1}返回字典?您可以对两个列表使用
+
操作符来连接它们
def prova(n):
if n == 0:
return [0]
else:
return [n] + prova(n-1)
>>> prova(3)
[3, 2, 1, 0]
我想了解为什么我的代码不起作用
我简化了您的代码以帮助您理解:
def prova(n):
if n == 0:
return 0
else:
return [prova(n-1)]
非常感谢,但我想了解为什么我的代码不起作用。基本的想法是这样的,对吗?哪里错了?对不起我的英语我用谷歌translator@Nurael:看,也许这会帮助你理解你的code.tnx。我明白了。现在我已经编辑了我的第一篇文章,你能帮我吗?我已经编辑了所有问题
def prova(n):
if n == 0:
return 0
else:
return [prova(n-1)]