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 cookielib 登录人人网的实现代码
Dec 19 Python
python自动格式化json文件的方法
Mar 11 Python
举例详解Python中threading模块的几个常用方法
Jun 18 Python
Python随手笔记之标准类型内建函数
Dec 02 Python
PyCharm代码回滚,恢复历史版本的解决方法
Oct 22 Python
python实现年会抽奖程序
Jan 22 Python
python3 使用Opencv打开USB摄像头,配置1080P分辨率的操作
Dec 11 Python
Python多线程通信queue队列用法实例分析
Mar 24 Python
基于python实现坦克大战游戏
Oct 27 Python
Python字符串查找基本操作代码案例
Oct 27 Python
pytorch加载语音类自定义数据集的方法教程
Nov 10 Python
python中pop()函数的语法与实例
Dec 01 Python
Python访问Redis的详细操作
一文搞懂python异常处理、模块与包
Python实战之OpenCV实现猫脸检测
Python爬虫基础之简单说一下scrapy的框架结构
Python爬虫基础之初次使用scrapy爬虫实例
Python上下文管理器Content Manager
Jun 26 #Python
仅用几行Python代码就能复制她的U盘文件?
You might like
php 中文和编码判断代码
2010/05/16 PHP
php数组函数序列之next() - 移动数组内部指针到下一个元素的位置,并返回该元素值
2011/10/31 PHP
php颜色转换函数hex-rgb(将十六进制格式转成十进制格式)
2013/09/23 PHP
PHP中读取文件的8种方法和代码实例
2014/08/05 PHP
使用laravel和ECharts实现折线图效果的例子
2019/10/09 PHP
javascript函数库-集合框架
2007/04/27 Javascript
js自定义鼠标右键的实现原理及源码
2014/06/23 Javascript
JavaScript中的console.trace()函数介绍
2014/12/29 Javascript
跨域资源共享 CORS 详解
2016/04/26 Javascript
更靠谱的H5横竖屏检测方法(js代码)
2016/09/13 Javascript
JavaScript中offsetWidth的bug及解决方法
2017/05/17 Javascript
AngularJS使用ocLazyLoad实现js延迟加载
2017/07/05 Javascript
JS自定义滚动条效果简单实现代码
2020/10/27 Javascript
layui实现给某一列加点击事件
2019/10/26 Javascript
Element Popover 弹出框的使用示例
2020/07/26 Javascript
[47:42]Fnatic vs Liquid 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python内置模块hashlib、hmac与uuid用法分析
2018/02/12 Python
Tensorflow实现酸奶销量预测分析
2019/07/19 Python
linux环境下安装python虚拟环境及注意事项
2020/01/07 Python
Python文件操作模拟用户登陆代码实例
2020/06/09 Python
python zip()函数的使用示例
2020/09/23 Python
HTML5 常见面试题之PC端和移动端区别介绍
2018/01/22 HTML / CSS
全球速卖通西班牙站:AliExpress西班牙
2017/10/30 全球购物
ABOUT YOU罗马尼亚:超过600个时尚品牌
2019/09/19 全球购物
Python如何实现单例模式
2016/06/03 面试题
土木工程毕业生自荐信
2013/11/12 职场文书
在校大学生个人的自我评价
2014/02/13 职场文书
雷锋精神演讲稿
2014/05/13 职场文书
小学优秀班主任事迹材料
2014/05/17 职场文书
借名购房协议书范本
2014/10/06 职场文书
预备党员自我评价范文
2015/03/04 职场文书
年底个人总结范文
2015/03/10 职场文书
表扬信格式模板
2015/05/05 职场文书
python基于tkinter实现gif录屏功能
2021/05/19 Python
MySql 8.0及对应驱动包匹配的注意点说明
2021/06/23 MySQL
python图片灰度化处理的几种方法
2021/06/23 Python