Python标准库:内置函数max(iterable, *[, key, default])说明


Posted in Python onApril 25, 2020

max(arg1, arg2, *args[, key])

本函数是迭代对象iterable进行比较,找出最大值返回。当key参数不为空时,就以key的函数对象为判断的标准。

例子:

#max()
 
array1 = range(10)
array2 = range(0, 20, 3)
print('max(array1)=', max(array1))
print('max(array2)=', max(array2))
print('max(array1,)=', max(array1, key=lambda x: x > 3) )
print(max(1, 2))
print(max('ah', 'bf', key=lambda x: x[1]))
print(max(array1, array2, key=lambda x: x[1]))
 
def comparator(x):
 return x[2]
print(max('ah2', 'bf3', key=comparator))

结果输出如下:

max(array1)= 9
max(array2)= 18
max(array1,)= 4

2
ah
range(0, 20, 3)
bf3

补充知识:python之lambda表达式 : 对于python中max函数的key参数的理解与使用

新版很6,预览效果和实际显示不同,代码块那里显示成html格式的我表示十分无语。将就看吧。

之前在看别人代码的时候看到了这样的用法:

return max(self._children.items(),
key=lambda act_node: act_node[1].get_value(c_puct))

表示对这个key值十分不解,然后上网一搜。哦!参考资料

lambda表达式:

其实lambda是一个匿名函数,我们通常叫它lambda表达式,lambda存在意义就是对简单函数的简洁表示。

比如我们想实现这样的函数:

def func(arg):
return arg + 1

为了使代码更简洁,lambda登场,把上面的函数变形成:

lambda arg : arg + 1

所以,lambda a : b , 实际上就是:lambda是一个输入值为a,返回值为b的函数。

max函数中的lambda表达式

现在回到我们的max函数中,就十分容易理解了:

函数形式:max( x ,key=lambda a : b ) # x可以是任何数值,可以有多个x值

这个函数的意思是:我们先把x值带入lambda函数转换成b值,然后再将b值进行比较。

上代码:

haha0=max('az','za', key=lambda a: a[0])
haha1=max('az','za', key=lambda a: a[1])
haha2=max(range(10),key=lambda a:a>3)
 
print(haha0)  #输出za
print(haha1)  #输出az
print(haha2)  #输出4

以haha0为例子:我们传入az,za,为了方便解释称之为虚拟比较,但是因为我们引入了lambda表达式,所以,我们实际上比较的是,az中的第一位a和za中第一位的z,由ascii码表可以知道a是小于z的,所以在这里最大的是z,那么我们返回的就是z的虚拟比较变量,也就是本来的"za"。

haha2的用法十分少见,实际上比较的是

F F F T T T T T T T ( False 和 True )

T是肯定比F大的,但是一堆True哪里能互相比较大小呢,所以就输出第一个True值的虚拟比较变量,也就是4啦。

max中带有lambda的这个写法的意义在于代码变得更简洁。

假如我们有一个字典,里面记录着人名和相应年龄,现在我们想要在里面筛选出年龄最大的那个人的一条字典记录。

x={"老王" :18 , "小李":99}
haha3=max(x.items(), key=lambda a: a[1])
print(haha3)  #输出('小李', 99)

要注意使用字典的话一定要x.items(),不能直接输入x值,达不到我们想要的效果。

其实我们大可不必这么写,直接从字典中提取出年龄列表进行比较:

x={"老王" :18 , "小李":99}
y=[]
for name,age in x.items():
 y.append(age)
haha4=max(y)
print(haha4)

只是这样写是比较麻烦以及浪费内存的不是么?我想这就是max函数中设置lambda表达式的意义。

以上这篇Python标准库:内置函数max(iterable, *[, key, default])说明就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
在Python的Django框架中更新数据库数据的方法
Jul 17 Python
Python+Selenium自动化实现分页(pagination)处理
Mar 31 Python
django 开发忘记密码通过邮箱找回功能示例
Apr 17 Python
Python爬虫——爬取豆瓣电影Top250代码实例
Apr 17 Python
Python学习笔记之自定义函数用法详解
Jun 08 Python
用python求一个数组的和与平均值的实现方法
Jun 29 Python
程序员的七夕用30行代码让Python化身表白神器
Aug 07 Python
python Event事件、进程池与线程池、协程解析
Oct 25 Python
pygame编写音乐播放器的实现代码示例
Nov 19 Python
python爬虫模块URL管理器模块用法解析
Feb 03 Python
Python如何在DataFrame增加数值
Feb 14 Python
python 实现批量图片识别并翻译
Nov 02 Python
python except异常处理之后不退出,解决异常继续执行的实现
Apr 25 #Python
python 追踪except信息方式
Apr 25 #Python
Python实现捕获异常发生的文件和具体行数
Apr 25 #Python
python IDLE添加行号显示教程
Apr 25 #Python
IDLE下Python文件编辑和运行操作
Apr 25 #Python
python 字典item与iteritems的区别详解
Apr 25 #Python
解决reload(sys)后print失效的问题
Apr 25 #Python
You might like
PHP4.04简明安装
2006/10/09 PHP
PHPCMS V9 添加二级导航的思路详解
2016/10/20 PHP
php实现文件与16进制相互转换的方法示例
2017/02/16 PHP
Laravel中encrypt和decrypt的实现方法
2017/09/24 PHP
Thinkphp5框架实现图片、音频和视频文件的上传功能详解
2019/08/27 PHP
浅析PHP echo 和 print 语句
2020/06/30 PHP
理解Javascript_08_函数对象
2010/10/15 Javascript
jQuery实现仿Google首页拖动效果的方法
2015/05/04 Javascript
javascript中caller和callee详解
2015/08/10 Javascript
使用JQuery实现Ctrl+Enter提交表单的方法
2015/10/22 Javascript
谈谈对offsetleft兼容性的理解
2015/11/11 Javascript
基于JavaScript代码实现随机漂浮图片广告
2016/01/05 Javascript
JavaScript数据结构中串的表示与应用实例
2017/04/12 Javascript
react native与webview通信的示例代码
2017/09/25 Javascript
深入浅析JSONAPI在PHP中的应用
2017/12/24 Javascript
浅谈mvvm-simple双向绑定简单实现
2018/04/18 Javascript
JavaScript实现飞舞的泡泡效果
2020/02/07 Javascript
使用python 获取进程pid号的方法
2014/03/10 Python
python实现数值积分的Simpson方法实例分析
2015/06/05 Python
如何高效使用Python字典的方法详解
2017/08/31 Python
python Django的web开发实例(入门)
2019/07/31 Python
python 批量修改 labelImg 生成的xml文件的方法
2019/09/09 Python
tensorflow中tf.reduce_mean函数的使用
2020/04/19 Python
Pycharm中配置远程Docker运行环境的教程图解
2020/06/11 Python
浅谈Python里面None True False之间的区别
2020/07/09 Python
如何设置Java的运行环境
2013/04/05 面试题
以太网Ethernet IEEE802.3
2013/08/05 面试题
laravel使用redis队列实例讲解
2021/03/23 PHP
教师求职推荐信范文
2013/11/20 职场文书
优秀少先队工作者事迹材料
2014/05/13 职场文书
新农村建设典型材料
2014/05/31 职场文书
商场开业庆典策划方案
2014/06/02 职场文书
经贸日语专业自荐信
2014/09/02 职场文书
优秀共产党员事迹材料
2014/12/18 职场文书
幼儿园门卫安全责任书
2015/05/08 职场文书
关于做家务的心得体会
2016/01/23 职场文书