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回调函数的使用方法
Jan 23 Python
介绍Python中的一些高级编程技巧
Apr 02 Python
简单说明Python中的装饰器的用法
Apr 24 Python
Python使用Paramiko模块编写脚本进行远程服务器操作
May 05 Python
python 类详解及简单实例
Mar 24 Python
Python协程的用法和例子详解
Sep 09 Python
Python2与Python3的区别实例总结
Apr 17 Python
计算机二级python学习教程(1) 教大家如何学习python
May 16 Python
python模拟键盘输入 切换键盘布局过程解析
Aug 15 Python
python matplotlib折线图样式实现过程
Nov 04 Python
Python中文分词库jieba,pkusegwg性能准确度比较
Feb 11 Python
Python在终端通过pip安装好包以后在Pycharm中依然无法使用的问题(三种解决方案)
Mar 10 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
不用数据库的多用户文件自由上传投票系统(3)
2006/10/09 PHP
PHP抓取网页、解析HTML常用的方法总结
2015/07/01 PHP
yii框架结合charjs实现统计30天数据的方法
2020/04/04 PHP
jQuery中add实现同时选择两个id对象
2010/10/22 Javascript
浅析document.createDocumentFragment()与js效率
2013/07/08 Javascript
jquery全选checkBox功能实现代码(取消全选功能)
2013/12/10 Javascript
javascript获取checkbox复选框获取选中的选项
2014/08/12 Javascript
学习JavaScript设计模式之模板方法模式
2016/01/20 Javascript
JS与HTML结合使用marquee标签实现无缝滚动效果代码
2016/07/05 Javascript
jQuery延迟执行的实现方法
2016/12/21 Javascript
详解Vue监听数据变化原理
2017/03/08 Javascript
Nodejs搭建wss服务器教程
2017/05/24 NodeJs
利用Angular.js编写公共提示模块的方法教程
2017/05/28 Javascript
js实现拖拽上传图片功能
2017/08/01 Javascript
ES6/JavaScript使用技巧分享
2017/12/14 Javascript
JavaScript数组、json对象、eval()函数用法实例分析
2019/02/21 Javascript
记一次Vue.js混入mixin的使用(分权限管理页面)
2019/04/17 Javascript
后台使用freeMarker和前端使用vue的方法及遇到的问题
2019/06/13 Javascript
Node.js从字符串生成文件流的实现方法
2019/08/18 Javascript
解决vue addRoutes不生效问题
2020/08/04 Javascript
Node.JS如何实现JWT原理
2020/09/18 Javascript
Python基础篇之初识Python必看攻略
2016/06/23 Python
Python实现基本数据结构中队列的操作方法示例
2017/12/04 Python
详解python使用递归、尾递归、循环三种方式实现斐波那契数列
2018/01/16 Python
Python wxPython库使用wx.ListBox创建列表框示例
2018/09/03 Python
python Paramiko使用示例
2020/09/21 Python
python实现企业微信定时发送文本消息的示例代码
2020/11/24 Python
Autopep8的使用(python自动编排工具)
2021/03/02 Python
html5 css3网站菜单实现代码
2013/12/23 HTML / CSS
捷克鲜花配送:Florea.cz
2018/10/29 全球购物
英国标准协会商店:BSI Shop
2019/02/25 全球购物
应届生财务会计求职信
2013/11/05 职场文书
婚礼父母答谢词
2015/01/04 职场文书
给老师的保证书怎么写
2015/05/09 职场文书
五年级语文教学反思
2016/03/03 职场文书
入党心得体会
2019/06/20 职场文书