Python中递归求出列表的最大值 |
您所在的位置:网站首页 › python中列表求最大值 › Python中递归求出列表的最大值 |
Python中递归求出列表的最大值
发布时间:2021-08-03 10:40:05
来源:亿速云
阅读:715
作者:小新
栏目:开发技术
这篇文章主要为大家展示了“Python中递归求出列表的最大值”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Python中递归求出列表的最大值”这篇文章吧。 要求:求出列表中的所有值的最大数,包括列表中带有子列表的。 按照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)的方法想要违和他的要求求出列表包括子列表的数,他就会给你进行报错。 图片如下: 按照上述的操作我们无法将列表的值和子列表的值进行对比,那么我们可以尝试着自己制作一个可以对比列表和子列表的值,这个方法特别简单,使用递归函数对每个值进行对比,包括子列表的值。 思路: 使用递归函数的方式列出,首先我们将每个列表的值全部列出来,在此我们使用循环的方式将列表中的值列出,然后对列表值的类型进行判断,如果值的类型为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))效果图如下: 这里我们依靠递归函数的作用,将所有表值全部取下,并且进行判断。 以上是“Python中递归求出列表的最大值”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道! 推荐阅读: 递归求数组的最大值 python基础之取列表中最大值的索引值免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:[email protected]进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。 python 递归 列表 上一篇新闻:Spark环境搭建与测试方法 下一篇新闻:如何解决某些HTML字符打不出来的问题 猜你喜欢 韩国服务器搭建个人博客有哪些优势 香港云服务器建站的优势有哪些呢 为什么外贸企业选择马来西亚服务器 韩国服务器部署游戏业务有什么优势 香港服务器搭建站群步骤有哪些 租用美国服务器有哪些要注意的事项 选择韩国服务器有哪些优势 怎么解决韩国服务器访问卡延迟高的问题 韩国服务器租用有哪些优势 租用低价韩国服务器可信吗 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |