pythondef函数求列表中的最大元素_Python递归求出列表(包括列表中的子列表)的最大值实例...

本文介绍如何使用Python递归函数找到包含子列表的列表中的最大值。传统内置函数`max()`无法处理这种情况,因此通过自定义递归函数`max_value()`实现,该函数遍历列表,对每个元素进行类型检查,如果是列表则继续递归,否则与当前最大值比较并更新。示例代码展示了如何使用这个函数并给出了运行结果。
摘要由CSDN通过智能技术生成

要求:求出列表中的所有值的最大数,包括列表中带有子列表的。

按照Python给出的内置函数(max)只能求出列表中的最大值,无法求出包括列表中的子列表的最大值

Python3代码如下:

#!/usr/bin/env python3

# _*_ coding:UTF-8 _*_

list_tmp = [1,3,5,7,9,11]

print(max(list_tmp))

返回的结果为:11

按照Python3给出内置函数(max)的方法想要违和他的要求求出列表包括子列表的数,他就会给你进行报错。

图片如下:

d95b616cb4286962c00dceed2ad2817e.png

按照上述的操作我们无法将列表的值和子列表的值进行对比,那么我们可以尝试着自己制作一个可以对比列表和子列表的值,这个方法特别简单,使用递归函数对每个值进行对比,包括子列表的值。

思路:

使用递归函数的方式列出,首先我们将每个列表的值全部列出来,在此我们使用循环的方式将列表中的值列出,然后对列表值的类型进行判断,如果值的类型为list,那么我们就再次列出列表中的值,以此类推,我们就能够得出所有的列表值,其中无一个是list的类型。

然后我们的函数中将返回结果给出一个默认值,值为0,然后在将返回值跟列表所列出来的值进行对比,如果谁大,那么返回结果的值将等于他,以此类推,我们最终得出的结果就是正个列表中的最大值,说着可能有点难懂,那么直接上代码。

Python3代码如下:

def max_value(ls,rs):

for l in ls:

if type(l) == list:

rs = max_value(l,rs)

continue

if l > rs:

rs = l

return rs

def max_val(ls):

rs = max_value(ls,0)

return rs

if __name__ == '__main__':

list1 = [4,1,3,11,[1,6,8],[[1,3],[6,15]]]

list2 = [5,[5,7,9,2],3,[2,6,16],9]

result1 = max_val(list1)

result2 = max_val(list2)

print('list1:%r\nMAX:%s\nlist2:%r\nMAX:%s' %(list1,result1,list2,result2))

效果图如下:

5791df9998b8bb37b7fb1a8f8fc5db1a.png

这里我们依靠递归函数的作用,将所有表值全部取下,并且进行判断。

以上就是使用递归函数求出整个列表的最大值,说明过程比较粗糙,请多多见谅。希望大家多多支持python博客!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值