Python max函数中key的用法及原理解析

作者:神马东东2012 时间:2022-09-09 04:00:24 

一、背景

起源于一个问题:怎样找到字符串中出现次数最多的字符

其实使用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的用法及原理解析

来源:https://blog.csdn.net/u013250071/article/details/118220139

标签:Python,max,函数,key
0
投稿

猜你喜欢

  • 手动实现vue2.0的双向数据绑定原理详解

    2024-04-27 16:09:15
  • Python闭包执行时值的传递方式实例分析

    2021-09-22 14:43:50
  • JSP 开发之 releaseSession的实例详解

    2023-06-14 11:49:03
  • 无惧面试,带你搞懂python 装饰器

    2022-07-29 19:29:00
  • 基于vue打包后字体和图片资源失效问题的解决方法

    2024-05-05 09:12:13
  • SQL处理多级分类,查询结果呈树形结构

    2012-08-21 10:50:12
  • ie和火狐兼容问题

    2010-07-02 12:50:00
  • 解决django model修改添加字段报错的问题

    2021-06-18 12:06:38
  • Linux下修改MySQL数据库数据文件路径的步骤

    2024-01-19 13:53:41
  • SQL Server中关于基数估计计算预估行数的一些方法探讨

    2024-01-14 17:30:40
  • php多个文件及图片上传实例详解

    2024-05-22 10:06:28
  • python ChainMap的使用和说明详解

    2022-03-03 08:22:30
  • Python+Tableau广东省人口普查可视化的实现

    2022-02-12 21:53:59
  • python3 使用openpyxl将mysql数据写入xlsx的操作

    2024-01-25 14:58:23
  • Python使用RPC例子

    2021-04-11 23:26:51
  • Python 文件与文件对象及文件打开关闭

    2021-06-16 16:08:44
  • oracle用什么SQL语句判断表存不存在

    2010-07-23 13:23:00
  • Django如何使用asyncio协程和ThreadPoolExecutor多线程

    2022-06-22 11:43:34
  • { hide_text } CSS文字隐藏总结报告

    2010-06-13 17:19:00
  • PyQt5每天必学之日历控件QCalendarWidget

    2023-05-30 12:12:48
  • asp之家 网络编程 m.aspxhome.com