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开发的nosql数据库CodernityDB介绍和使用实例
Oct 23 Python
python3.4控制用户输入与输出的方法
Oct 17 Python
Python 一句话生成字母表的方法
Jan 02 Python
详解Python logging调用Logger.info方法的处理过程
Feb 12 Python
python全栈知识点总结
Jul 01 Python
在Django的View中使用asyncio的方法
Jul 12 Python
pytorch方法测试详解——归一化(BatchNorm2d)
Jan 15 Python
Python多线程thread及模块使用实例
Apr 28 Python
关于Python不换行输出和不换行输出end=““不显示的问题(亲测已解决)
Oct 27 Python
利用python查看数组中的所有元素是否相同
Jan 08 Python
python OpenCV学习笔记
Mar 31 Python
Python TypeError: ‘float‘ object is not subscriptable错误解决
Dec 24 Python
Python访问Redis的详细操作
一文搞懂python异常处理、模块与包
Python实战之OpenCV实现猫脸检测
Python爬虫基础之简单说一下scrapy的框架结构
Python爬虫基础之初次使用scrapy爬虫实例
Python上下文管理器Content Manager
Jun 26 #Python
仅用几行Python代码就能复制她的U盘文件?
You might like
php弹出对话框实现重定向代码
2014/01/23 PHP
解决laravel5.4下的group by报错的问题
2019/10/16 PHP
基于jQuery的倒计时实现代码
2012/05/30 Javascript
html向js方法传递参数具体实现
2013/08/08 Javascript
jquery快捷动态绑定键盘事件的操作函数代码
2013/10/17 Javascript
Javascript小技巧之生成html元素
2014/05/15 Javascript
js代码实现的加入收藏效果并兼容主流浏览器
2014/06/23 Javascript
JavaScript中Number.NEGATIVE_INFINITY值的使用详解
2015/06/05 Javascript
jQuery改变form表单的action,并进行提交的实现代码
2016/05/25 Javascript
jQuery遍历节点树方法分析
2016/09/08 Javascript
seajs实现强制刷新本地缓存的方法分析
2017/10/16 Javascript
JS去掉字符串末尾的标点符号及删除最后一个字符的方法
2017/10/24 Javascript
JS函数节流和函数防抖问题分析
2017/12/18 Javascript
Vue项目使用CDN优化首屏加载问题
2018/04/01 Javascript
[52:14]VG vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
在Python中用has_key()方法查找键是否存在的教程
2015/05/21 Python
Python实现PS滤镜功能之波浪特效示例
2018/01/26 Python
Python爬虫使用Selenium+PhantomJS抓取Ajax和动态HTML内容
2018/02/23 Python
python随机数分布random测试
2018/08/27 Python
django2.0扩展用户字段示例
2019/02/13 Python
Python3+Appium安装使用教程
2019/07/05 Python
HTML5 window/iframe跨域传递消息 API介绍
2013/08/26 HTML / CSS
马来西亚奢侈品牌购物商城:Valiram 247
2020/09/29 全球购物
什么是Connection-oriented Protocol/Connectionless Protocol面向连接的协议/无连接协议
2012/09/06 面试题
面料业务员岗位职责
2013/12/26 职场文书
小学美术教学反思
2014/02/01 职场文书
教师党性分析材料
2014/02/04 职场文书
校庆筹备方案
2014/03/30 职场文书
保健品市场营销方案
2014/03/31 职场文书
销售目标责任书
2014/07/23 职场文书
离职感谢信怎么写
2015/01/22 职场文书
西双版纳导游词
2015/02/03 职场文书
裁员通知
2015/04/25 职场文书
慈善募捐倡议书
2015/04/27 职场文书
美丽心灵观后感
2015/06/01 职场文书
创业计划书之小型广告公司
2019/10/22 职场文书