Python 找出列表中最大值(递归)
如果列表为空返回 0;如果列表不为空比较mylist[0] > getMaxValue(mylist[1:]);如果mylist[0]大则返回;否则再次递归;# 处理用列表mylist = [12, 5, 23, 100, 25, 36, 78, 25, 100, 13]# 求最大值函数def getMaxValue(mylist):# 结束条件if mylist == None:retur
·
如果列表为空返回 0;
如果列表不为空比较mylist[0] > getMaxValue(mylist[1:]);
如果mylist[0]大则返回;
否则再次递归;
1. 基本代码实现
# 处理用列表
mylist = [12, 5, 23, 100, 25, 36, 78, 25, 100, 13]
# 求最大值函数
def getMaxValue(mylist):
# 结束条件
if mylist == None:
return 0
elif len(mylist) == 1:
return mylist[0]
# 返回大值
elif mylist[0] > getMaxValue(mylist[1:]):
return mylist[0]
else:
return getMaxValue(mylist[1:])
print(getMaxValue(mylist))
'''
递归调用流程
[12, 5, 23]
--> 12, 5, 23
--> 5, 23
--> 23
--> 5, 23 5 和 23比较 --> getMaxValue(mylist[1:]),第二层递归
--> 23
--> 12, 5, 23 12 和 23比较
--> 23
'''
2. 使用Math.max函数实现
# 处理用列表
mylist = [12, 5, 23, 100, 25, 36, 78, 25, 100, 13,200,30]
# 求最大值函数
def getMaxValue(mylist):
# 结束条件
if len(mylist) == 0:
return 0
return max(mylist[0] , getMaxValue(mylist[1:]))
print(getMaxValue(mylist))
更多推荐
已为社区贡献1条内容
所有评论(0)