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单向链表的实现
Dec 24 Python
Python实现登录接口的示例代码
Jul 21 Python
Python探索之自定义实现线程池
Oct 27 Python
Python Paramiko模块的使用实际案例
Feb 01 Python
Python numpy.array()生成相同元素数组的示例
Nov 12 Python
python pcm音频添加头转成Wav格式文件的方法
Jan 09 Python
python使用matplotlib画柱状图、散点图
Mar 18 Python
python顺序执行多个py文件的方法
Jun 29 Python
python实现在函数中修改变量值的方法
Jul 16 Python
windows下Python安装、使用教程和Notepad++的使用教程
Oct 06 Python
详细分析Python collections工具库
Jul 16 Python
Django一小时写出账号密码管理系统
Apr 29 Python
Python访问Redis的详细操作
一文搞懂python异常处理、模块与包
Python实战之OpenCV实现猫脸检测
Python爬虫基础之简单说一下scrapy的框架结构
Python爬虫基础之初次使用scrapy爬虫实例
Python上下文管理器Content Manager
Jun 26 #Python
仅用几行Python代码就能复制她的U盘文件?
You might like
德生H-501的评价与改造
2021/03/02 无线电
php检测useragent版本示例
2014/03/24 PHP
php中stream(流)的用法
2014/03/25 PHP
CodeIgniter框架数据库基本操作示例
2018/05/24 PHP
浅析PHP中的 inet_pton 网络函数
2019/12/16 PHP
JS加ASP二级域名转向的代码
2007/05/17 Javascript
firefox插件Firebug的使用教程
2010/01/02 Javascript
Javascript生成json的函数代码(可以用php的json_decode解码)
2012/06/11 Javascript
JavaScript作用域链示例分享
2014/05/27 Javascript
详细解读JavaScript编程中的Promise使用
2015/07/27 Javascript
详解js私有作用域中创建特权方法
2016/01/25 Javascript
原生javascript实现图片无缝滚动效果
2016/02/12 Javascript
jQuery简单实现tab选项卡切换效果
2016/06/20 Javascript
Angular2 环境配置详细介绍
2016/09/21 Javascript
vue2.0 路由不显示router-view的解决方法
2018/03/06 Javascript
不使用JavaScript实现菜单的打开和关闭效果demo
2018/05/01 Javascript
JavaScript事件循环及宏任务微任务原理解析
2020/09/02 Javascript
vue实现单一筛选、删除筛选条件
2020/10/26 Javascript
基于循环神经网络(RNN)的古诗生成器
2018/03/26 Python
Python简单实现查找一个字符串中最长不重复子串的方法
2018/03/26 Python
python pandas读取csv后,获取列标签的方法
2018/11/12 Python
selenium+python自动化测试之鼠标和键盘事件
2019/01/23 Python
Python实现二叉树的常见遍历操作总结【7种方法】
2019/03/06 Python
Python字符串对象实现原理详解
2019/07/01 Python
python之拟合的实现
2019/07/19 Python
PyCharm搭建Spark开发环境的实现步骤
2019/09/05 Python
PyTorch预训练的实现
2019/09/18 Python
HTML页面中添加Canvas标签示例
2015/01/01 HTML / CSS
购买英国原创艺术:Art Gallery
2018/08/25 全球购物
DOUGLAS荷兰:购买香水和化妆品
2020/10/24 全球购物
公司JAVA开发面试题
2015/04/02 面试题
单位介绍信范文
2014/01/18 职场文书
春节超市活动方案
2014/08/14 职场文书
2015年中秋节活动总结
2015/03/23 职场文书
2016年5月份红领巾广播稿
2015/12/21 职场文书
中学生打架《检讨书》范文
2019/08/12 职场文书