Python max函数中key的用法及原理解析


Posted in Python onJune 26, 2021

一、背景

起源于一个问题:怎样找到字符串中出现次数最多的字符

其实使用max函数就能很轻松的解决这个问题:

代码:

str1 = "AAAaaa8888899sssss"
print(max(str1, key=str1.count))

结果:8

二、原理

max()函数用于获得给定的可迭代对象中的最大值。

key是max()函数的一个参数,它辅助max函数找到最大元素。当max() 函数中有 key 参数时,求的是 value 的最大值,当没有 key 参数时,求的是 key 的最大值。

key可以对要比较的对象进行一些处理,以达到对对象进行特定规则的比较。

要在比较之前修改对象,或基于特定的属性/索引进行比较,必须使用key参数。

三、用法

获取字典中key的最大值

dict1 = {'a': '11', 'c': '22', 'b': '33'}
print(max(dict1))
print(max(dict1.keys()))

获取字典中最大value对应的key值

dict1 = {'a': '11', 'c': '22', 'b': '33'}
print(max(dict1, key=dict1.get))
print(max(dict1, key=lambda x: dict1[x]))

获取字典中最大value的值

dict1 = {'a': '11', 'c': '22', 'b': '33'}
print(max(dict1.values()))

获取句子中的最长单词

str3 = "Life is short , I use python"
print(str3.split())
print(max(str3.split(), key=len))

获取list中的最大值

list1 = ['11', 'zzz', '22', 'eee']
print(max(list1))

获取list中的最大数值

list2 = ['11', '3', '222', '67']
print(max(list2, key=lambda x: int(x)))

获取list中的绝对值最大的值

list3 = ['11', '-399', '222', '67']
print(max(list2, key=lambda x: abs(int(x))))

获取元组list中指定索引的最大值

list4 = [(1, 'a'), (3, 'c'), (4, 'e'), (-1, 'z')]
print(max(list4, key=lambda x: x[1]))

四、实例

str1 = "AAAaaa888ww8899sssss"
print(max(str1, key=str1.count))
print('--------------------------')
 
print(max(str1))
print('--------------------------')
 
 
list1 = ['11', 'zzz', '22', 'eee']
print(max(list1))
print('--------------------------')
 
list2 = ['11', '-399', '222', '67']
print(max(list2, key=lambda x: int(x)))
print('--------------------------')
 
list3 = ['11', '-399', '222', '67']
print(max(list2, key=lambda x: abs(int(x))))
print('--------------------------')
 
# list3 = [{'age': 20}, {'age': 23}]
# print(max(list3))
# print('--------------------------')
 
list4 = [(1, 'a'), (3, 'c'), (4, 'e'), (-1, 'z')]
print(max(list4, key=lambda x: x[1]))
print('--------------------------')
 
 
dict1 = {'a': '11', 'c': '22', 'b': '33'}
print(max(dict1, key=dict1.get))
print(max(dict1, key=lambda x: dict1[x]))
 
dict1 = {'a': '11', 'c': '22', 'b': '33'}
print(max(dict1))
print(max(dict1.keys()))
 
dict1 = {'a': '11', 'c': '22', 'b': '33'}
print(max(dict1.values()))
print('--------------------------')

str3 = "Life is short , I use python"
print(str3.split())
print(max(str3.split(), key=len))
print(max(str3.split()))
print('--------------------------')

运行结果:

Python max函数中key的用法及原理解析

以上就是Python max函数中key的用法的详细内容,更多关于Python max函数key用法的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python抓取某汽车网数据解析html存入excel示例
Dec 04 Python
Python中使用item()方法遍历字典的例子
Aug 26 Python
Python多线程和队列操作实例
Jun 21 Python
Python内建数据结构详解
Feb 03 Python
python增加矩阵维度的实例讲解
Apr 04 Python
Python 忽略warning的输出方法
Oct 18 Python
Python从函数参数类型引出元组实例分析
May 28 Python
解决pycharm 远程调试 上传 helpers 卡住的问题
Jun 27 Python
Python命令行参数解析工具 docopt 安装和应用过程详解
Sep 26 Python
Python csv文件的读写操作实例详解
Nov 19 Python
解决python父线程关闭后子线程不关闭问题
Apr 25 Python
python用tkinter实现一个简易能进行随机点名的界面
Sep 27 Python
Python访问Redis的详细操作
一文搞懂python异常处理、模块与包
Python实战之OpenCV实现猫脸检测
Python爬虫基础之简单说一下scrapy的框架结构
Python爬虫基础之初次使用scrapy爬虫实例
Python上下文管理器Content Manager
Jun 26 #Python
仅用几行Python代码就能复制她的U盘文件?
You might like
ExtJS 2.0实用简明教程 之获得ExtJS
2009/04/29 Javascript
js jquery数组介绍
2012/07/15 Javascript
Jquery 动态生成表格示例代码
2013/12/24 Javascript
二叉树的非递归后序遍历算法实例详解
2014/02/07 Javascript
javascript实现的HashMap类代码
2014/06/27 Javascript
文字垂直滚动之javascript代码
2015/07/29 Javascript
javascript封装简单实现方法
2015/08/11 Javascript
基于JavaScript实现简单的随机抽奖小程序
2016/01/05 Javascript
浅析JavaScript Array和string的转换(推荐)
2016/05/20 Javascript
jQuery仿京东商城楼梯式导航定位菜单
2016/07/25 Javascript
js中获取键盘事件的简单实现方法
2016/10/10 Javascript
AngularJS中指令的四种基本形式实例分析
2016/11/22 Javascript
Angularjs单选框相关的示例代码
2017/08/17 Javascript
tween.js缓动补间动画算法示例
2018/02/13 Javascript
JavaScript函数式编程(Functional Programming)声明式与命令式实例分析
2019/05/21 Javascript
js实现炫酷光感效果
2020/09/05 Javascript
使用Python的Bottle框架写一个简单的服务接口的示例
2015/08/25 Python
详解K-means算法在Python中的实现
2017/12/05 Python
django页面跳转问题及注意事项
2019/07/18 Python
解决运行django程序出错问题 'str'object has no attribute'_meta'
2020/07/15 Python
python 绘制场景热力图的示例
2020/09/23 Python
维珍澳洲航空官网:Virgin Australia
2017/09/08 全球购物
宿舍使用违章电器检讨书
2014/01/12 职场文书
军训教官感言
2014/03/02 职场文书
银行竞聘演讲稿
2014/05/16 职场文书
岗位安全生产责任书
2014/07/28 职场文书
群众路线教育实践活动思想汇报(2014特荐篇)
2014/09/16 职场文书
教师党的群众路线对照检查材料
2014/09/24 职场文书
2014年扫黄打非工作总结
2014/12/03 职场文书
违纪检讨书范文
2015/01/27 职场文书
长城英文导游词
2015/01/30 职场文书
党小组评议意见
2015/06/02 职场文书
政审证明范文
2015/06/19 职场文书
团队拓展训练心得体会
2016/01/12 职场文书
Mac环境Nginx配置和访问本地静态资源的实现
2021/03/31 Servers
golang用type-switch判断interface的实际存储类型
2022/04/14 Golang