[英]Why am I getting a Type error when reversing a list using recursion
我正在尝试编写一个反转列表的递归函数。 这是代码:
def recursiveReverseList(L):
if len(L)==1:
return L
else:
return [L[-1]]+recursiveReverseList(L.pop())
当我运行这个函数时,它给了我一个TypeError: object of type 'int' has no len()
。 有谁知道问题可能是什么?
为什么不直接使用内置函数?
l = [1,2,3,4,5]
l.reverse()
print(l)
[5,4,3,2,1]
在任何情况下,以下都是您想要的:
def recursiveReverseList(L):
return L if len(L) == 1 else [L[-1]]+recursiveReverseList(L[:-1])
list_ = [1,2,3,4,5]
print(recursiveReverseList(list_))
请注意,我只是将L.pop()
替换为L[:-1]
您正在传递.pop()
的返回值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.