递归地计算列表的长度

Eri*_*ric 0 python recursion function

如果你有一个列表= [1,2,3,4,5]

如何在不使用len(list)的情况下以递归方式计算该列表的长度?

myarray = [1,2,3,4,5]

def mylist(myarray):
    if (myarray == []):
        print ("The list is empty")
        return 
    return 1 + ?
Run Code Online (Sandbox Code Playgroud)

不想使用len但每次在列表中存在值时只添加1.我该怎么办?

DTi*_*ing 8

>>> def list_length(L):
...     if L:
...         return 1 + list_length(L[1:])
...     return 0
... 
>>> list_length(myarray)
5
>>> list_length([])
0
>>> list_length([1]*4)
4
>>> 
Run Code Online (Sandbox Code Playgroud)

如果列表包含元素,则返回1 +列表长度减去一个元素.

您可以通过几种不同的方式执行此操作,但切片[:1]或[1:]将分别为您提供减去最后一个或第一个的元素,这是有道理的.

如果列表没有元素,则返回0