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求众数问题实例
Sep 26 Python
在Python的Flask框架中实现单元测试的教程
Apr 20 Python
Python文件及目录操作实例详解
Jun 04 Python
详解python并发获取snmp信息及性能测试
Mar 27 Python
Pycharm学习教程(7)虚拟机VM的配置教程
May 04 Python
Python安装Numpy和matplotlib的方法(推荐)
Nov 02 Python
Python3网络爬虫之使用User Agent和代理IP隐藏身份
Nov 23 Python
利用python实现微信头像加红色数字功能
Mar 26 Python
对pyqt5多线程正确的开启姿势详解
Jun 14 Python
python实现回旋矩阵方式(旋转矩阵)
Dec 04 Python
python 基于卡方值分箱算法的实现示例
Jul 17 Python
python实现取余操作的简单实例
Aug 16 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实现的常见排序算法汇总
2014/09/08 PHP
PHP的Yii框架的基本使用示例
2015/08/21 PHP
php Session无效分析资料整理
2016/11/29 PHP
PHP 获取客户端 IP 地址的方法实例代码
2018/11/11 PHP
PHP使用DOM对XML解析处理操作示例
2019/07/04 PHP
【消息提示组件】,兼容IE6/7&&FF2
2007/09/04 Javascript
Javascript 圆角div的实现代码
2009/10/15 Javascript
javascript 图片上一张下一张链接效果代码
2010/03/12 Javascript
Jquery实现弹出层分享微博插件具备动画效果
2013/04/03 Javascript
js实现点击添加一个input节点
2014/12/05 Javascript
javascript中eval函数用法分析
2015/04/25 Javascript
javascript排序函数实现数字排序
2015/06/26 Javascript
jQuery点击输入框显示验证码图片
2016/05/19 Javascript
jQuery的Each比JS原生for循环性能慢很多的原因
2016/07/05 Javascript
关于 jQuery Easyui异步加载tree的问题解析
2016/12/06 Javascript
Javascript for in的缺陷总结
2017/02/03 Javascript
微信小程序websocket实现聊天功能
2020/03/30 Javascript
React 路由懒加载的几种实现方案
2018/10/23 Javascript
原生JS实现烟花效果
2020/03/10 Javascript
[01:04:48]VGJ.S vs TNC Supermajor 败者组 BO3 第一场 6.6
2018/06/07 DOTA
python在linux系统下获取系统内存使用情况的方法
2015/05/11 Python
python面向对象入门教程之从代码复用开始(一)
2018/12/11 Python
python IDLE添加行号显示教程
2020/04/25 Python
CSS3 特效范例整理
2011/08/22 HTML / CSS
使用HTML5的链接预取功能(link prefetching)给网站提速
2012/12/13 HTML / CSS
单身旅行者的单身假期:Just You
2018/04/08 全球购物
英国奢华护肤、美容和Spa品牌:Temple Spa
2019/11/02 全球购物
Android面试题附答案
2014/12/08 面试题
C#面试问题
2016/07/29 面试题
工商管理本科生求职信
2014/07/13 职场文书
六一儿童节活动总结
2014/08/27 职场文书
白酒代理协议书范本
2014/10/26 职场文书
先进党组织事迹材料
2014/12/26 职场文书
同学聚会祝酒词
2015/08/10 职场文书
Dashboard管理Kubernetes集群与API访问配置
2022/04/01 Servers
MySQL事务的ACID特性以及并发问题方案
2022/07/15 MySQL