繁体   English   中英

为什么在使用递归反转列表时会出现类型错误

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM