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中的字典遍历备忘
Jan 17 Python
利用Django框架中select_related和prefetch_related函数对数据库查询优化
Apr 01 Python
Python对列表排序的方法实例分析
May 16 Python
更改Ubuntu默认python版本的两种方法python-> Anaconda
Dec 18 Python
wxPython的安装与使用教程
Aug 31 Python
Python字典遍历操作实例小结
Mar 05 Python
python实现关闭第三方窗口的方法
Jun 28 Python
利用PyQt中的QThread类实现多线程
Feb 18 Python
python实现电子词典
Mar 03 Python
python文件及目录操作代码汇总
Jul 08 Python
Python实现简单猜数字游戏
Feb 03 Python
利用Python第三方库实现预测NBA比赛结果
Jun 21 Python
Python访问Redis的详细操作
一文搞懂python异常处理、模块与包
Python实战之OpenCV实现猫脸检测
Python爬虫基础之简单说一下scrapy的框架结构
Python爬虫基础之初次使用scrapy爬虫实例
Python上下文管理器Content Manager
Jun 26 #Python
仅用几行Python代码就能复制她的U盘文件?
You might like
php file_get_contents函数轻松采集html数据
2010/04/22 PHP
WIN8.1下搭建PHP5.6环境
2015/04/29 PHP
jQuery LigerUI 插件介绍及使用之ligerDrag和ligerResizable示例代码打包
2011/04/06 Javascript
解决用jquery load加载页面到div时,不执行页面js的问题
2014/02/22 Javascript
javascript实现十秒钟后注册按钮可点击的方法
2015/05/13 Javascript
JS和css实现检测移动设备方向的变化并判断横竖屏幕
2015/05/25 Javascript
简介JavaScript中getUTCMonth()方法的使用
2015/06/10 Javascript
js制作带有遮罩弹出层实现登录注册表单特效代码分享
2015/09/05 Javascript
学习javascript面向对象 掌握创建对象的9种方式
2016/01/04 Javascript
很全面的JavaScript常用功能汇总集合
2016/01/22 Javascript
php基于redis处理session的方法
2016/03/14 Javascript
jQuery动态产生select option下拉列表
2017/03/15 Javascript
关于Node.js中Buffer的一些你可能不知道的用法
2017/03/28 Javascript
vue 项目 iOS WKWebView 加载
2019/04/17 Javascript
pm2启动ssr失败的解决方法
2019/06/29 Javascript
使用typescript快速开发一个cli的实现示例
2020/12/09 Javascript
用Python编写一个简单的俄罗斯方块游戏的教程
2015/04/03 Python
Python下使用Scrapy爬取网页内容的实例
2018/05/21 Python
Python列表与元组的异同详解
2019/07/02 Python
python中类的输出或类的实例输出为这种形式的原因
2019/08/12 Python
python中如何实现将数据分成训练集与测试集的方法
2019/09/13 Python
PyCharm 2020 激活到 2100 年的教程
2020/03/25 Python
Python 实现微信自动回复的方法
2020/09/11 Python
css3.0 图形构成实例练习一
2013/03/19 HTML / CSS
岗位职责的定义
2013/11/10 职场文书
公积金单位接收函
2014/01/11 职场文书
家庭教育先进个人事迹材料
2014/01/24 职场文书
JAVA程序员自荐书
2014/01/30 职场文书
银行办公室岗位职责
2014/03/10 职场文书
竞选班长的演讲稿
2014/04/24 职场文书
法语专业求职信
2014/07/20 职场文书
人力资源管理毕业求职信
2014/08/05 职场文书
2015年志愿者服务工作总结
2015/04/20 职场文书
2015年毕业实习工作总结
2015/05/29 职场文书
导游词之云南省玉龙雪山
2019/12/19 职场文书
Python 键盘事件详解
2021/11/11 Python