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设计模式编程中Adapter适配器模式的使用实例
Mar 02 Python
Odoo中如何生成唯一不重复的序列号详解
Feb 10 Python
numpy判断数值类型、过滤出数值型数据的方法
Jun 09 Python
Python3.5 Pandas模块缺失值处理和层次索引实例详解
Apr 23 Python
python之pyqt5通过按钮改变Label的背景颜色方法
Jun 13 Python
python基础 range的用法解析
Aug 23 Python
pytorch中使用cuda扩展的实现示例
Feb 12 Python
Python3+Selenium+Chrome实现自动填写WPS表单
Feb 12 Python
django有哪些好处和优点
Sep 01 Python
Django实现文章详情页面跳转代码实例
Sep 16 Python
浅谈Python 中的复数问题
May 19 Python
使用numpy实现矩阵的翻转(flip)与旋转
Jun 03 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 类商品秒杀计时实现代码
2010/05/05 PHP
基于asp+ajax和数据库驱动的二级联动菜单
2010/05/06 PHP
轻松掌握php设计模式之访问者模式
2016/09/23 PHP
PHP文件管理之实现网盘及压缩包的功能操作
2017/09/20 PHP
Nigma vs AM BO3 第二场2.13
2021/03/10 DOTA
javascript编程起步(第六课)
2007/01/10 Javascript
iis6+javascript Add an Extension File
2007/06/13 Javascript
js实现连续英文字符自动换行兼容ie6 ie7和firefox
2013/09/06 Javascript
两种方法基于jQuery实现IE浏览器兼容placeholder效果
2014/10/14 Javascript
利用js实现禁止复制文本信息
2015/06/03 Javascript
Vue.js实例方法之生命周期详解
2017/07/03 Javascript
JS switch判断 三目运算 while 及 属性操作代码
2017/09/03 Javascript
vue实现百度下拉列表交互操作示例
2019/03/12 Javascript
node.js事件轮询机制原理知识点
2019/12/22 Javascript
jQuery实现鼠标滑动切换图片
2020/05/27 jQuery
微信小程序地图实现展示线路
2020/07/29 Javascript
解决VUE 在IE下出现ReferenceError: Promise未定义的问题
2020/11/07 Javascript
Python微信库:itchat的用法详解
2017/08/14 Python
用Python3创建httpServer的简单方法
2018/06/04 Python
使用Python的Dataframe取两列时间值相差一年的所有行方法
2018/07/10 Python
解决python中os.listdir()函数读取文件夹下文件的乱序和排序问题
2018/10/17 Python
django 微信网页授权登陆的实现
2019/07/30 Python
python的range和linspace使用详解
2019/11/27 Python
基于Python中isfile函数和isdir函数使用详解
2019/11/29 Python
python实现tail -f 功能
2020/01/17 Python
Python3.9又更新了:dict内置新功能
2020/02/28 Python
pytorch cuda上tensor的定义 以及减少cpu的操作详解
2020/06/23 Python
python 利用jieba.analyse进行 关键词提取
2020/12/17 Python
Python Selenium库的基本使用教程
2021/01/04 Python
运动会稿件50字
2014/02/17 职场文书
领导班子作风建设年个人整改措施
2014/09/29 职场文书
2015年小学数学教师工作总结
2015/05/20 职场文书
小学秋季运动会通讯稿
2015/11/25 职场文书
MySQL命令行操作时的编码问题详解
2021/04/14 MySQL
java调用Restful接口的三种方法
2021/08/23 Java/Android
HTML5中的DOCUMENT.VISIBILITYSTATE属性详解
2023/05/07 HTML / CSS