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抓取京东图书评论数据
Aug 31 Python
Python对List中的元素排序的方法
Apr 01 Python
Python实现的查询mysql数据库并通过邮件发送信息功能
May 17 Python
python实现超简单的视频对象提取功能
Jun 04 Python
Python中安装easy_install的方法
Nov 18 Python
python调用c++ ctype list传数组或者返回数组的方法
Feb 13 Python
Python实现的统计文章单词次数功能示例
Jul 08 Python
django ModelForm修改显示缩略图 imagefield类型的实例
Jul 28 Python
python实现读取excel文件中所有sheet操作示例
Aug 09 Python
Python 3.6打包成EXE可执行程序的实现
Oct 18 Python
Python使用configparser读取ini配置文件
May 25 Python
Pycharm无法打开双击没反应的问题及解决方案
Aug 17 Python
Python访问Redis的详细操作
一文搞懂python异常处理、模块与包
Python实战之OpenCV实现猫脸检测
Python爬虫基础之简单说一下scrapy的框架结构
Python爬虫基础之初次使用scrapy爬虫实例
Python上下文管理器Content Manager
Jun 26 #Python
仅用几行Python代码就能复制她的U盘文件?
You might like
Drupal7 form表单二次开发要点与实例
2014/03/02 PHP
php解析xml 的四种简单方法(附实例)
2016/07/11 PHP
Laravel 使用查询构造器配合原生sql语句查询的例子
2019/10/12 PHP
JavaScript入门教程(1) 什么是JS
2009/01/31 Javascript
在Javascript里访问SharePoint列表数据的实现方法
2011/05/22 Javascript
JS自定义对象实现Java中Map对象功能的方法
2015/01/20 Javascript
jquery实现点击页面计算点击次数
2015/01/23 Javascript
分享两个手机访问pc网站自动跳转手机端网站代码
2020/12/24 Javascript
javascript运算符语法全面概述
2016/07/14 Javascript
jQuery实现带延时功能的水平多级菜单效果【附demo源码下载】
2016/09/21 Javascript
jquery自定义表单验证插件
2016/10/12 Javascript
JS实现的DIV块来回滚动效果示例
2017/02/07 Javascript
Angular项目中$scope.$apply()方法的使用详解
2017/07/26 Javascript
jQuery EasyUI结合zTree树形结构制作web页面
2017/09/01 jQuery
vue项目中的webpack-dev-sever配置方法
2017/12/14 Javascript
bootstrap下拉框动态赋值方法
2018/08/10 Javascript
Vue开发实现吸顶效果的示例代码
2018/08/21 Javascript
微信小程序公用参数与公用方法用法示例
2019/01/09 Javascript
详解vue 图片上传功能
2019/04/30 Javascript
[38:39]KG vs Mineski 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
实例讲解Python编程中@property装饰器的用法
2016/06/20 Python
Python+Wordpress制作小说站
2017/04/14 Python
Python开发SQLite3数据库相关操作详解【连接,查询,插入,更新,删除,关闭等】
2017/07/27 Python
解决Pandas to_json()中文乱码,转化为json数组的问题
2018/05/10 Python
Windows下Anaconda2安装NLTK教程
2018/09/19 Python
pip 安装库比较慢的解决方法(国内镜像)
2019/10/06 Python
使用 Python 处理3万多条数据只要几秒钟
2020/01/19 Python
解决json中ensure_ascii=False的问题
2020/04/03 Python
如何使用localstorage代替cookie实现跨域共享数据问题
2018/04/18 HTML / CSS
英国快时尚女装购物网站:PrettyLittleThing
2018/08/15 全球购物
女性时尚网购:Chic Me
2019/07/30 全球购物
俄罗斯厨房产品购物网站:COOK HOUSE
2021/03/15 全球购物
旅游市场营销方案
2014/03/09 职场文书
30岁前绝不能错过的10本书
2019/08/08 职场文书
MySQL 使用索引扫描进行排序
2021/06/20 MySQL
go使用Gin框架利用阿里云实现短信验证码功能
2021/08/04 Golang