这里我用一个简单的代码来说明我遇到什么:递归不能追加列表
def recTry(inList):
print(inList)
if len(inList) < 10:
recTry(inList.append(1))
我用递归希望它会变得像[1]
,[1, 1]
,[1, 1, 1]
...... 但实际上,运行,将产生这样的:
>>> recTry([1])
[1]
None
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 4, in recTry
File "<stdin>", line 3, in recTry
TypeError: object of type 'NoneType' has no len()
inList
成为自第二递归None
。 那么我如何编码以使inList
附加每个递归?
你的函数缺少'return'语句,因此它变成'None' –
另外'inList.append(1)'返回'None'。您需要先追加1,然后将该列表传递给递归调用 –