Python递归求出列表(包括列表中的子列表)的最大值实例


Posted in Python onFebruary 27, 2020

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

按照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)的方法想要违和他的要求求出列表包括子列表的数,他就会给你进行报错。

图片如下:

Python递归求出列表(包括列表中的子列表)的最大值实例

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

思路:

使用递归函数的方式列出,首先我们将每个列表的值全部列出来,在此我们使用循环的方式将列表中的值列出,然后对列表值的类型进行判断,如果值的类型为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 相关文章推荐
Python中bisect的用法
Sep 23 Python
python Celery定时任务的示例
Mar 13 Python
关于python2 csv写入空白行的问题
Jun 22 Python
python在TXT文件中按照某一字符串取出该字符串所在的行方法
Dec 10 Python
Python批量删除只保留最近几天table的代码实例
Apr 01 Python
python接口自动化测试之接口数据依赖的实现方法
Apr 26 Python
Pytorch .pth权重文件的使用解析
Feb 14 Python
python中sympy库求常微分方程的用法
Apr 28 Python
导致python中import错误的原因是什么
Jul 01 Python
python 使用多线程创建一个Buffer缓存器的实现思路
Jul 02 Python
详解Python 中的 defaultdict 数据类型
Feb 22 Python
python 实现定时任务的四种方式
Apr 01 Python
python GUI库图形界面开发之PyQt5下拉列表框控件QComboBox详细使用方法与实例
Feb 27 #Python
Python 之 Json序列化嵌套类方式
Feb 27 #Python
python GUI库图形界面开发之PyQt5访问系统剪切板QClipboard类详细使用方法与实例
Feb 27 #Python
python GUI库图形界面开发之PyQt5控件数据拖曳Drag与Drop详细使用方法与实例
Feb 27 #Python
python脚本实现mp4中的音频提取并保存在原目录
Feb 27 #Python
python列表切片和嵌套列表取值操作详解
Feb 27 #Python
Python递归实现打印多重列表代码
Feb 27 #Python
You might like
第十一节--重载
2006/11/16 PHP
特转载一高手总结PHP学习资源和链接.
2006/12/05 PHP
初识通用数据库操作类――前端easyui-datagrid,form(php)
2015/07/31 PHP
PHP三种方式实现链式操作详解
2017/01/21 PHP
制作特殊字的脚本
2006/06/26 Javascript
IE6下focus与blur错乱的解决方案
2011/07/31 Javascript
JS 添加千分位与去掉千分位的示例
2013/07/11 Javascript
jquery与js函数冲突的两种解决方法
2013/09/09 Javascript
详解Node.js中的事件机制
2016/09/22 Javascript
详解Js模板引擎(TrimPath)
2016/11/22 Javascript
微信小程序 数组(增,删,改,查)等操作实例详解
2017/01/05 Javascript
详解angularjs结合pagination插件实现分页功能
2017/02/10 Javascript
详解vue.js的devtools安装
2017/05/26 Javascript
IE11下使用canvas.toDataURL报SecurityError错误的解决方法
2017/11/19 Javascript
jQuery实现条件搜索查询、实时取值及升降序排序的方法分析
2019/05/04 jQuery
JS数组方法join()用法实例分析
2020/01/18 Javascript
[40:16]TFT vs Mski Supermajor小组赛C组 BO3 第二场 6.3
2018/06/04 DOTA
python使用sorted函数对列表进行排序的方法
2015/04/04 Python
Python基于opencv的图像压缩算法实例分析
2018/05/03 Python
Appium+python自动化之连接模拟器并启动淘宝APP(超详解)
2019/06/17 Python
Python函数中参数是传递值还是引用详解
2019/07/02 Python
django rest framework vue 实现用户登录详解
2019/07/29 Python
opencv python Canny边缘提取实现过程解析
2020/02/03 Python
Pycharm激活码激活两种快速方式(附最新激活码和插件)
2020/03/12 Python
Python绘制动态水球图过程详解
2020/06/03 Python
python如何实现DES加密
2020/09/21 Python
new修饰符是起什么作用
2015/06/28 面试题
实习老师离校感言
2014/02/03 职场文书
创业女性典型材料
2014/05/02 职场文书
民警个人对照检查剖析材料
2014/09/17 职场文书
2015年公司新年寄语
2014/12/08 职场文书
会计工作检讨书
2015/02/19 职场文书
幼儿园开学家长寄语(2016秋季)
2015/12/03 职场文书
golang 如何通过反射创建新对象
2021/04/28 Golang
Java基础之this关键字的使用
2021/06/30 Java/Android
人物搭配车车超萌联名预备中 【咒术迴战】 ⨯ 【天竺鼠车车】 展开合作
2022/04/11 日漫