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入门_浅谈数据结构的4种基本类型
May 16 Python
rabbitmq(中间消息代理)在python中的使用详解
Dec 14 Python
Python中sort和sorted函数代码解析
Jan 25 Python
详解Python 数据库的Connection、Cursor两大对象
Jun 25 Python
浅析Python pandas模块输出每行中间省略号问题
Jul 03 Python
简单瞅瞅Python vars()内置函数的实现
Sep 27 Python
基于Pytorch SSD模型分析
Feb 18 Python
python读取多层嵌套文件夹中的文件实例
Feb 27 Python
Pycharm如何运行.py文件的方法步骤
Mar 03 Python
细说NumPy数组的四种乘法的使用
Dec 18 Python
python爬虫破解字体加密案例详解
Mar 02 Python
python入门之算法学习
Apr 22 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
安装apache2.2.22配置php5.4(具体操作步骤)
2013/06/26 PHP
php 使用ActiveMQ发送消息,与处理消息操作示例
2020/02/23 PHP
javascript(jquery)利用函数修改全局变量的代码
2009/11/02 Javascript
12款经典的白富美型—jquery图片轮播插件—前端开发必备
2013/01/08 Javascript
jquery属性过滤选择器使用示例
2013/06/18 Javascript
深入理解Javascript中this的作用域
2014/08/12 Javascript
JavaScript中逗号运算符介绍及使用示例
2015/03/13 Javascript
JavaScript 实现的 zip 压缩和解压缩工具包Zip.js使用详解
2015/12/14 Javascript
javascript每日必学之封装
2016/02/23 Javascript
js实现文字截断功能
2016/09/14 Javascript
node.js学习之base64编码解码
2016/10/21 Javascript
微信小程序 Canvas增强组件实例详解及源码分享
2017/01/04 Javascript
解决vue 项目引入字体图标报错、不显示等问题
2018/09/01 Javascript
JS实现简易留言板增删功能
2020/02/08 Javascript
vue中音频wavesurfer.js的使用方法
2020/02/20 Vue.js
react PropTypes校验传递的值操作示例
2020/04/28 Javascript
[46:49]完美世界DOTA2联赛PWL S3 access vs Rebirth 第二场 12.19
2020/12/24 DOTA
在服务器端实现无间断部署Python应用的教程
2015/04/16 Python
使用rpclib进行Python网络编程时的注释问题
2015/05/06 Python
pandas apply多线程实现代码
2020/08/17 Python
Python爬虫Scrapy框架CrawlSpider原理及使用案例
2020/11/20 Python
加拿大消费电子和手机购物网站:The Source
2017/01/28 全球购物
法国高保真音响和家庭影院商店:Son Video
2019/04/26 全球购物
P D PAOLA意大利官网:西班牙著名的珠宝首饰品牌
2019/09/24 全球购物
财务人员个人自荐信范文
2013/09/26 职场文书
水产养殖学应届生求职信
2013/09/29 职场文书
支教自我鉴定
2014/01/18 职场文书
党建示范点实施方案
2014/03/12 职场文书
试用期自我鉴定范文
2014/03/20 职场文书
探亲假请假条
2014/04/11 职场文书
创建青年文明号材料
2014/05/09 职场文书
全国优秀辅导员事迹材料
2014/05/14 职场文书
新颖的化妆品活动方案
2014/08/21 职场文书
先进事迹演讲稿
2014/09/01 职场文书
青涩记忆观后感
2015/06/18 职场文书
Win11查看设备管理器
2022/04/19 数码科技