如果你有一個列表= [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。我會怎麼做?
如果你有一個列表= [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。我會怎麼做?
>>> 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
請'不myarray'取代'(myArray的== [])'。 – 2011-04-18 00:42:16
我不禁要問:你爲什麼要這麼做? DTing接受的答案與標準的len函數(Python列表的非常短的恆定時間)相比,具有O(N ** 2)複雜性,這是非常可怕的, – 2011-04-18 06:43:32