我需要编写一个以数字列表作为参数的函数,并在不使用max()
的情况下返回列表中的最大数字。
我试过了:
def highestNumber(l):
myMax = 0
if myMax < l:
return myMax
return l
print highestNumber ([77,48,19,17,93,90])
......以及其他一些我不记得的事情。我只需要了解如何循环列表中的元素。
答案 0 :(得分:4)
def highestNumber(l):
myMax = l[0]
for num in l:
if myMax < num:
myMax = num
return myMax
print highestNumber ([77,48,19,17,93,90])
<强>输出强>
93
或者你可以做这样的事情
def highestNumber(l):
return sorted(l)[-1]
或者
def highestNumber(l):
l.sort()
return l[-1]
答案 1 :(得分:2)
您需要遍历所有值以确定最大值;跟踪到目前为止的最大值并在完成循环后返回
def highestNumber(l):
myMax = float('-inf')
for i in l:
if i > myMax:
myMax = i
return myMax
此处float('-inf')
是一个保证低于任何其他数字的数字,这是一个很好的起点。
for
构造负责所有循环;你直接对l
的元素执行此操作,i
将逐个分配序列的每个元素。
您的代码忘记循环,针对0
测试整个列表,如果测试失败则返回整个列表。
答案 2 :(得分:0)
用于在不使用预定义函数的情况下在列表中查找最大值
def max_len_list(temp):
i=1
for each in temp:
while i < max_len:
comp=each;
if comp > temp[i]:
i=i+1;
elif temp[i] > comp:
comp=temp[i];
i=i+1
return comp
list1 = [];
max_len=3;
try:
while len(list1) < max_len :
no = int(input("enter a number\n"));
list1.append(no);
except:
print "enter number not string"
max_no=max_len_list(list1);
print max_no