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 GAE、Django导出Excel的方法
Nov 24 Python
python文件比较示例分享
Jan 10 Python
Python读写ini文件的方法
May 28 Python
Python入门_条件控制(详解)
May 16 Python
python WindowsError的错误代码详解
Jul 23 Python
给你选择Python语言实现机器学习算法的三大理由
Nov 15 Python
在Python中增加和插入元素的示例
Nov 01 Python
Python函数中参数是传递值还是引用详解
Jul 02 Python
Python插件机制实现详解
May 04 Python
Python 阶乘详解
Oct 05 Python
Qt自定义Plot实现曲线绘制的详细过程
Nov 02 Python
python多次执行绘制条形图
Apr 20 Python
Python访问Redis的详细操作
一文搞懂python异常处理、模块与包
Python实战之OpenCV实现猫脸检测
Python爬虫基础之简单说一下scrapy的框架结构
Python爬虫基础之初次使用scrapy爬虫实例
Python上下文管理器Content Manager
Jun 26 #Python
仅用几行Python代码就能复制她的U盘文件?
You might like
Terran剧情介绍
2020/03/14 星际争霸
关于PHP中操作MySQL数据库的一些要注意的问题
2006/10/09 PHP
PHP调用三种数据库的方法(1)
2006/10/09 PHP
jQuery获取地址栏参数插件(模仿C#)
2010/10/26 Javascript
Pro JavaScript Techniques学习笔记
2010/12/28 Javascript
Jquery图片滚动与幻灯片的实例代码
2013/04/08 Javascript
利用js实现遮罩以及弹出可移动登录窗口
2013/07/08 Javascript
js函数调用的方式
2014/05/06 Javascript
jQuery中index()的用法分析
2014/09/05 Javascript
JavaScript对象之深度克隆介绍
2014/12/08 Javascript
js调出上下文菜单的实例
2015/12/17 Javascript
css配合JavaScript实现tab标签切换效果
2018/10/11 Javascript
js的继承方法小结(prototype、call、apply)(推荐)
2019/04/17 Javascript
javascript的this关键字详解
2019/05/20 Javascript
vue学习笔记之slot插槽用法实例分析
2020/02/29 Javascript
JS实现放烟花效果
2020/03/10 Javascript
python使用点操作符访问字典(dict)数据的方法
2015/03/16 Python
详解Python中的多线程编程
2015/04/09 Python
python 把文件中的每一行以数组的元素放入数组中的方法
2018/04/29 Python
Python3实现的简单验证码识别功能示例
2018/05/02 Python
python3之模块psutil系统性能信息使用
2018/05/30 Python
Python flask框架post接口调用示例
2019/07/03 Python
使用python切片实现二维数组复制示例
2019/11/26 Python
python中的逆序遍历实例
2019/12/25 Python
Python自定义聚合函数merge与transform区别详解
2020/05/26 Python
在keras 中获取张量 tensor 的维度大小实例
2020/06/10 Python
如何在mac下配置python虚拟环境
2020/07/06 Python
美国最大的宠物药店:1-800-PetMeds
2016/10/02 全球购物
联想马亚西亚官方网站:Lenovo Malaysia
2018/09/19 全球购物
巴西香水和化妆品购物网站:The Beauty Box
2019/09/03 全球购物
求职信模版
2013/11/30 职场文书
节水口号标语
2014/06/19 职场文书
2016年劳模先进事迹材料
2016/02/25 职场文书
2016个人先进事迹材料范文
2016/03/01 职场文书
iPhone13将有八大升级
2021/04/15 数码科技
asyncio异步编程之Task对象详解
2022/03/13 Python