如果你有一个列表= [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 + ?
不想使用len,只需在每次列表中存在值时添加1即可。我该怎么做?
答案 0 :(得分: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
>>>
如果列表包含元素,则返回1 +列表长度减去一个元素。
你可以通过几种不同的方式做到这一点,但切片[:1]或[1:]将分别给你减去最后一个或第一个的元素,这是有道理的。
如果列表没有元素,则返回0
答案 1 :(得分:-1)