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中__init__和__new__的区别详解
Jul 09 Python
Python中的choice()方法使用详解
May 15 Python
在Python中操作字典之setdefault()方法的使用
May 21 Python
Tensorflow 利用tf.contrib.learn建立输入函数的方法
Feb 08 Python
Python实现的爬虫刷回复功能示例
Jun 07 Python
用python给自己做一款小说阅读器过程详解
Jul 11 Python
Python any()函数的使用方法
Oct 28 Python
解决Python使用列表副本的问题
Dec 19 Python
Python3之乱码\xe6\x97\xa0\xe6\xb3\x95处理方式
May 11 Python
Python内存泄漏和内存溢出的解决方案
Sep 26 Python
Python 实现二叉查找树的示例代码
Dec 21 Python
Python使用socket去实现TCP客户端和TCP服务端
Apr 12 Python
Python访问Redis的详细操作
一文搞懂python异常处理、模块与包
Python实战之OpenCV实现猫脸检测
Python爬虫基础之简单说一下scrapy的框架结构
Python爬虫基础之初次使用scrapy爬虫实例
Python上下文管理器Content Manager
Jun 26 #Python
仅用几行Python代码就能复制她的U盘文件?
You might like
mysql 的 like 问题,超强毕杀记!!!
2007/01/18 PHP
使用Xdebug调试和优化PHP程序之[1]
2007/04/17 PHP
PHP 身份验证方面的函数
2009/10/11 PHP
PHP图片等比例缩放生成缩略图函数分享
2014/06/10 PHP
PHP多线程之内部多线程实例分析
2015/03/09 PHP
PHP设计模式之工厂模式与单例模式
2016/09/28 PHP
js压缩工具 yuicompressor 使用教程
2010/03/31 Javascript
阻止子元素继承父元素事件具体思路及实现
2013/05/02 Javascript
Checbox的操作含已选、未选及判断代码
2013/11/07 Javascript
使用JavaScript进行进制转换将字符串转换为十进制
2014/09/21 Javascript
非常酷炫的Bootstrap图片轮播动画
2016/05/27 Javascript
基于vue v-for 循环复选框-默认勾选第一个的实现方法
2018/03/03 Javascript
JS实现字符串去重及数组去重的方法示例
2018/04/21 Javascript
vue中使用element-ui进行表单验证的实例代码
2018/06/22 Javascript
深入理解react-router 路由的实现原理
2018/09/26 Javascript
vue 基于element-ui 分页组件封装的实例代码
2018/12/10 Javascript
解决vue单页面应用进入页面加载所有 js 的问题
2020/08/12 Javascript
[03:01]2014DOTA2国际邀请赛 小组赛7月13日TOPPLAY
2014/07/14 DOTA
[56:18]VGJ.S vs Secret 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python程序设计入门(1)基本语法简介
2014/06/13 Python
跟老齐学Python之玩转字符串(2)
2014/09/14 Python
python获取Linux下文件版本信息、公司名和产品名的方法
2014/10/05 Python
python构建自定义回调函数详解
2017/06/20 Python
python实现list由于numpy array的转换
2018/04/04 Python
深入分析python中整型不会溢出问题
2018/06/18 Python
python+Django实现防止SQL注入的办法
2019/10/31 Python
python算的上脚本语言吗
2020/06/22 Python
使用HTML5做的导航条详细步骤
2020/10/19 HTML / CSS
Erwin Müller穆勒家居瑞士官网:您整个家庭的邮购公司
2019/12/28 全球购物
广州足迹信息技术有限公司Java软件工程师试题
2014/02/15 面试题
夜大毕业生自我鉴定
2013/10/31 职场文书
校园招聘策划书
2014/01/09 职场文书
2014年打非治违工作总结
2014/11/13 职场文书
解决pytorch-gpu 安装失败的记录
2021/05/24 Python
Java面试题冲刺第十七天--基础篇3
2021/08/07 面试题
python数字图像处理之对比度与亮度调整示例
2022/06/28 Python