在这里,我使用简化的代码来演示遇到的问题:
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
随每次递归追加? 最佳答案
inList.append(1)
返回None
,因此在递归时传递None
您可以做的是:
def recTry(inList):
print(inList)
if len(inList) < 10:
inList.append(1)
recTry(inList)
else:
return inList
关于python - 递归无法追加列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45626740/