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实现多线程的两种方式
May 22 Python
tensorflow学习笔记之简单的神经网络训练和测试
Apr 15 Python
python面向对象法实现图书管理系统
Apr 19 Python
python2和python3实现在图片上加汉字的方法
Aug 22 Python
python 默认参数相关知识详解
Sep 18 Python
pytorch中的inference使用实例
Feb 20 Python
Python 实现平台类游戏添加跳跃功能
Mar 27 Python
Python验证码截取识别代码实例
May 16 Python
Python Socket TCP双端聊天功能实现过程详解
Jun 15 Python
Python3与fastdfs分布式文件系统如何实现交互
Jun 23 Python
matplotlib 画动态图以及plt.ion()和plt.ioff()的使用详解
Jan 05 Python
python如何构建mock接口服务
Jan 28 Python
Python访问Redis的详细操作
一文搞懂python异常处理、模块与包
Python实战之OpenCV实现猫脸检测
Python爬虫基础之简单说一下scrapy的框架结构
Python爬虫基础之初次使用scrapy爬虫实例
Python上下文管理器Content Manager
Jun 26 #Python
仅用几行Python代码就能复制她的U盘文件?
You might like
一个简洁的多级别论坛
2006/10/09 PHP
Banner程序
2006/10/09 PHP
基于jQuery图片平滑连续滚动插件
2009/04/27 Javascript
JavaScript DOM学习第六章 表单实例
2010/02/19 Javascript
关于UTF-8的客户端用AJAX方式获取GB2312的服务器端乱码问题的解决办法
2010/11/30 Javascript
详解JS 比较两个Json对象的值是否相等的实例
2013/11/20 Javascript
jquery得到iframe src属性值的方法
2014/09/25 Javascript
DOM基础教程之使用DOM设置文本框
2015/01/20 Javascript
jQuery和AngularJS的区别浅析
2015/01/29 Javascript
jquery实现点击向下展开菜单项(伸缩导航)效果
2015/08/22 Javascript
浅析$(function) ready和onload 的区别
2016/09/03 Javascript
AngularJS指令中的绑定策略实例分析
2016/12/14 Javascript
3分钟快速搭建nodejs本地服务器方法运行测试html/js
2017/04/01 NodeJs
vue深入解析之render function code详解
2017/07/18 Javascript
js数字滑动时钟的简单实现(示例讲解)
2017/08/14 Javascript
React Native 使用Fetch发送网络请求的示例代码
2017/12/02 Javascript
React如何避免重渲染
2018/04/10 Javascript
在HTML文档中嵌入JavaScript的四种方法
2018/05/07 Javascript
详解React中setState回调函数
2018/06/14 Javascript
解析vue data不可以使用箭头函数问题
2018/07/03 Javascript
vue生命周期实例小结
2018/08/15 Javascript
vue键盘事件点击事件加native操作
2020/07/27 Javascript
Vue实现图书管理案例
2021/01/20 Vue.js
Python使用django获取用户IP地址的方法
2015/05/11 Python
Python创建模块及模块导入的方法
2015/05/27 Python
详解C++编程中一元运算符的重载
2016/01/19 Python
18个Python脚本可加速你的编码速度(提示和技巧)
2019/10/17 Python
分享一枚pycharm激活码适用所有pycharm版本我的pycharm2020.2.3激活成功
2020/11/20 Python
世界上最大的餐具公司:Oneida
2016/12/17 全球购物
欧洲领先的火车票和大巴票预订平台:Trainline
2018/12/26 全球购物
个性车贴标语
2014/06/24 职场文书
积极心理学课程心得体会
2016/01/22 职场文书
Python爬取英雄联盟MSI直播间弹幕并生成词云图
2021/06/01 Python
JavaScript ES6的函数拓展
2022/01/18 Javascript
python画条形图的具体代码
2022/04/20 Python
CSS实现鼠标悬浮动画特效
2023/05/07 HTML / CSS