【发布时间】:2016-11-26 06:39:01
【问题描述】:
我写了一个函数,试图找出列表中的最大值:
def maxElement(L):
length=len(L)
if L[length-1]>L[length-2]:
del L[length-2]
print L
elif L[length-1]<L[length-2]:
del L[length-1]
return L
print maxElement([1,2,95754754745,3,1,8,444,2,42425])
我的输出是错误的:
>>>
[1, 2, 95754754745L, 3, 1, 8, 444, 42425]
[1, 2, 95754754745L, 3, 1, 8, 444, 42425]
>>>
它甚至没有为我删除我所要求的。我做错了什么?看不懂!
【问题讨论】:
-
你写的函数不是递归的。对于要递归的函数,它必须调用自身,即在
def a_function()块内有一个a_function()调用。您可能知道并且仅仅因为到目前为止没有说明,您可以简单地使用max()并将您的列表L传递给它,就像max_item = max(L)一样。不过我想你已经知道了。 -
@Rawing 添加一个while循环不会使这个函数递归。
-
它确实删除了一个元素——最后一个
2。