Python 使用递归将项添加到字典

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

我在学习递归,有个问题

如果我尝试创建一个递归函数来向列表中添加项,那么一切都可以。 例如:

如果我想创建一个递归函数来在字典中添加项,那么会出现几个错误。 例如,我需要创建一个dict={lion:0,rat:1}的字典 我尝试过此代码,但不起作用:

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)]