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爬取网站数据保存使用的方法
Nov 20 Python
使用Python进行稳定可靠的文件操作详解
Dec 31 Python
Python迭代器和生成器定义与用法示例
Feb 10 Python
python多进程使用及线程池的使用方法代码详解
Oct 24 Python
CentOS 7下安装Python3.6 及遇到的问题小结
Nov 08 Python
Python socket模块实现的udp通信功能示例
Apr 10 Python
python实现京东订单推送到测试环境,提供便利操作示例
Aug 09 Python
python实现将字符串中的数字提取出来然后求和
Apr 02 Python
Iconfont(矢量图标)+iconmoon(图标svg互转)配合javascript实现社交分享系统
Apr 21 Python
python zip()函数的使用示例
Sep 23 Python
python判断元素是否存在的实例方法
Sep 24 Python
如何实现一个python函数装饰器(Decorator)
Oct 12 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
用PHP+MySql编写聊天室
2006/10/09 PHP
Laravel如何自定义command命令浅析
2019/03/23 PHP
用showModalDialog弹出页面后,提交表单总是弹出一个新窗口
2009/07/18 Javascript
jQuery在iframe中无法弹出对话框的解决方法
2014/01/12 Javascript
jQuery toggleClass应用实例(附效果图)
2014/04/06 Javascript
jQuery制作简单柱状图实例
2015/01/28 Javascript
JavaScript插件化开发教程(六)
2015/02/01 Javascript
JS上传图片前实现图片预览效果的方法
2015/03/02 Javascript
jquery中val()方法是从最后一个选项往前读取的
2015/09/06 Javascript
bootstrap datepicker限定可选时间范围实现方法
2016/09/28 Javascript
vue源码入口文件分析(推荐)
2018/01/30 Javascript
Vue模拟数据,实现路由进入商品详情页面的示例
2018/08/31 Javascript
微信小程序模板template简单用法示例
2018/12/04 Javascript
探索JavaScript中私有成员的相关知识
2019/06/13 Javascript
vue实现弹幕功能
2019/10/25 Javascript
ng-alain的sf如何自定义部件的流程
2020/06/12 Javascript
vue下拉刷新组件的开发及slot的使用详解
2020/12/23 Vue.js
跟老齐学Python之变量和参数
2014/10/10 Python
Python 常用string函数详解
2016/05/30 Python
python计算阶乘和的方法(1!+2!+3!+...+n!)
2019/02/01 Python
解决Python安装时报缺少DLL问题【两种解决方法】
2019/07/15 Python
使用python实现学生信息管理系统
2021/02/25 Python
CSS3样式linear-gradient的使用实例
2017/01/16 HTML / CSS
html5调用摄像头功能的实现代码
2018/05/07 HTML / CSS
html5自动播放mov格式视频的实例代码
2020/01/14 HTML / CSS
韩国11街:11STREET
2018/03/27 全球购物
小区门卫管理制度
2014/01/29 职场文书
协议书怎么写
2014/04/21 职场文书
运动员获奖感言
2014/08/15 职场文书
2014基建处领导班子“四风”对照检查材料思想汇报
2014/10/04 职场文书
2016年春季开学典礼新闻稿
2015/11/25 职场文书
2016年母亲节广告语
2016/01/28 职场文书
nginx结合openssl实现https的方法
2021/07/25 Servers
在CSS中使用when/else的方法
2022/01/18 HTML / CSS
工厂无线对讲系统解决方案
2022/02/18 无线电
IDEA中sout快捷键无效问题的解决方法
2022/07/23 Java/Android