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 相关文章推荐
35个Python编程小技巧
Apr 01 Python
Python内建数据结构详解
Feb 03 Python
Python闭包的两个注意事项(推荐)
Mar 20 Python
启动targetcli时遇到错误解决办法
Oct 26 Python
Django中更改默认数据库为mysql的方法示例
Dec 05 Python
Python实现查找字符串数组最长公共前缀示例
Mar 27 Python
Python上下文管理器类和上下文管理器装饰器contextmanager用法实例分析
Nov 07 Python
pycharm 设置项目的根目录教程
Feb 12 Python
Python selenium模拟手动操作实现无人值守刷积分功能
May 13 Python
python缩进长度是否统一
Aug 02 Python
python实现视频压缩功能
Dec 18 Python
Python实现灰色关联分析与结果可视化的详细代码
Mar 25 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
全国FM电台频率大全 - 10 江苏省
2020/03/11 无线电
PHP调用Linux的命令行执行文件压缩命令
2013/01/27 PHP
php设计模式之单例模式使用示例
2014/01/20 PHP
Yii2使用表单上传文件的实例代码
2017/08/03 PHP
thinkphp5使用无限极分类
2019/02/18 PHP
js 加载并解析XML字符串的代码
2009/12/13 Javascript
jQuery 打造动态下滑菜单实现说明
2010/04/15 Javascript
我的Node.js学习之路(二)NPM模块管理
2014/07/06 Javascript
jQuery+CSS实现的网页二级下滑菜单效果
2015/08/25 Javascript
利用Jasmine对Angular进行单元测试的方法详解
2017/06/12 Javascript
浅谈Node模块系统及其模式
2017/11/17 Javascript
JS简单添加元素新节点的方法示例
2018/02/10 Javascript
使用typescript开发angular模块并发布npm包
2018/04/19 Javascript
Nodejs把接收图片base64格式保存为文件存储到服务器上
2018/09/26 NodeJs
微信接入之获取用户头像的方法步骤
2019/09/23 Javascript
JavaScript中的函数申明、函数表达式、箭头函数
2019/12/06 Javascript
vue.js实现h5机器人聊天(测试版)
2020/07/16 Javascript
JS实现可以用键盘方向键控制的动画
2020/12/11 Javascript
EXTJS7实现点击拖拉选择文本
2020/12/17 Javascript
[01:10:16]DOTA2上海特级锦标赛B组资格赛#2 Fnatic VS Spirit第一局
2016/02/27 DOTA
[07:09]DOTA2-DPC中国联赛 正赛 Ehome vs Elephant 选手采访
2021/03/11 DOTA
Python学习笔记(二)基础语法
2014/06/06 Python
Python读取Excel的方法实例分析
2015/07/11 Python
图文详解WinPE下安装Python
2016/05/17 Python
Python使用线程来接收串口数据的示例
2019/07/02 Python
python删除指定列或多列单个或多个内容实例
2020/06/28 Python
什么是封装
2013/03/26 面试题
金融学专业大学生职业生涯规划
2014/03/07 职场文书
年终工作总结范文2014
2014/11/27 职场文书
2015年教师节演讲稿范文
2015/03/19 职场文书
旷工辞退通知书
2015/04/17 职场文书
2015年乡镇环保工作总结
2015/04/22 职场文书
电台广播稿范文
2015/08/19 职场文书
周一问候语大全
2015/11/10 职场文书
企业管理制度设计时要注意的几种“常见病”!
2019/04/19 职场文书
win10电脑双屏显示一个黑屏怎么办?win10电脑双屏显示一个黑屏解决方法
2022/07/15 数码科技