一、背景

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

其实使用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的用法相关推荐

  1. python max函数中使用key

    博客转移到个人站点:python max函数中使用key 代码: a = dict(((1,3),(0,-1),(3,21))) m = max(a, key=a.get) 为什么这返回与最大值对应的 ...

  2. python key=lambda函数_使用’key’和lambda表达式的python max函数

    我来自OOP背景,尝试学习Python.我使用的是max函数,该函数使用lambda表达式返回Player类型的实例,其中players列表中的totalScore最大. def winner(): ...

  3. Python max 函数 - Python零基础入门教程

    目录 一.Python max 函数简介 二.Python max 函数使用 三.猜你喜欢 基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门 一. ...

  4. python max函数_python max函数

    Python max函数 最后更新于:2020-03-21 12:02:18 一.python max函数简介 max函数返回给定参数的最大值,参数可以为序列语法: max( x, y, z, ... ...

  5. python在函数中传入多个实参

    python在函数中传入多个实参 def make_pizza(*toppings):print("-----------------")print(toppings)make_p ...

  6. Pytorch中tensor维度和torch.max()函数中dim参数的理解

    Pytorch中tensor维度和torch.max()函数中dim参数的理解 维度 参考了 https://blog.csdn.net/qq_41375609/article/details/106 ...

  7. 习题 9.5 建立一个对象数组,内放5个学生的数据(学号、成绩),设立一个函数max,用指向对象的指针作函数参数,在max函数中找出5个学生中成绩最高者,并输出其学号。

    C++程序设计(第三版) 谭浩强 习题9.5 个人设计 习题 9.5 建立一个对象数组,内放5个学生的数据(学号.成绩),设立一个函数max,用指向对象的指针作函数参数,在max函数中找出5个学生中成 ...

  8. python中的func函数_如何解释python func函数中的n?

    Func函数第一次了解知道是学习闭包章节中的,而后,因为函数本身存在的意义涵盖很多知识点,所以经常使用,在调用的时候,看到一个问题,就是关于python func函数中的n是什么?大家有没有考虑过呢? ...

  9. python max函数_python的max函数的用法

    本文,用max函数来找出数据中的最大值. 工具/原料 电脑 python 方法/步骤 1 从一串数字里面,找出最大值. max([5,6,7,8]) 2 从字符串里面找出最大值. max('56789 ...

  10. python max函数key_Python标准库:内置函数max(iterable, *[, key, default]) | 学步园

    max(arg1, arg2, *args[, key]) 本函数是迭代对象iterable进行比较,找出最大值返回.当key参数不为空时,就以key的函数对象为判断的标准. 例子: #max() a ...

最新文章

  1. linux安装 ”NTFS“ 文件系统
  2. R语言数据可视化 ggplot2基础3 添加几何对象
  3. python连接oracle数据库的方法_Python3.6连接Oracle数据库的方法详解
  4. NYOJ 420 p次方求和 大数的幂
  5. A Simple Problem with Integers POJ - 3468(线段树+区间查询+区间修改+建树+懒惰标记模板)+(树状数组)
  6. java登录界面命令_Java命令行界面(第29部分):自己动手
  7. 文末送书啦!| Device Mapper,那些你不知道的Docker核心技术
  8. Visual C# 2008+SQL Server 2005 数据库与网络开发――3.2.4 匿名类型
  9. Web安全相关(二):跨站请求伪造(CSRF/XSRF)
  10. java操作数据库,以页面显示学生信息为例
  11. 视觉SLAM算法框架解析(3) SVO
  12. vue 页面保存为本地图片
  13. 数据分析师都有哪些发展方向?
  14. GitHub双重认证问题
  15. Programming Challenges 习题 1.6.7
  16. FPGA电源设计方案
  17. Python语句十大优雅写法
  18. 如何用语音模块SYN6288播报DHT11温湿度传感器传回来的数值
  19. 从零开始搭建仿抖音短视频App--项目介绍和架构设计演示
  20. 鲁大师性能测试要装什么软件吗,鲁大师怎么给电脑跑分?赶快看看你的电脑性能如何吧!...

热门文章

  1. 游侠小秘书基本智能框架完成!!!
  2. UnixC的第十三天
  3. Matlab读取音频文件并进行分析
  4. java 显示数据库_java连接数据库并显示数据
  5. Java 连接 数据库 (idea2022 + MySQL 演示,Oracle 通用)
  6. linux镜像ISO文件下载
  7. html 字体思源_CSS3嵌入字体@font-face调用字体(思源宋体regula/PingFang SC/ttf/woff)...
  8. 【Java】菜鸟教程Java基础测试刷题笔记
  9. 2023年数据结构考研知识梳理视频哪里有
  10. 软件任我行 10步菜鸟快易通上手教程