Python中max函数key的用法详解
max
是 Python 中的内置函数,它可以用于求出可迭代对象中的最大值。
语法:
它的语法如下:
max(iterable, *[, key, default])
其中,iterable
参数是一个可迭代对象,例如列表、元组或字符串,它指定要在其中查找最大值的对象。
key
参数是一个可选参数,指定用于比较的函数。当指定了 key 参数时,max 函数将使用这个函数对每个元素进行转换,然后比较转换后的值来确定最大值。default
参数是一个可选参数,指定当 iterable 为空时返回的默认值。
求最大值
下面是一个例子,展示了如何使用 max
函数来求出列表中的最大值:
numbers = [1, 2, 3, 4, 5]maximum = max(numbers)
print(maximum) # 输出:5
在这个例子中,我们创建了一个名为 numbers
的列表,并调用 max
函数来求出这个列表中的最大值。由于列表 numbers
中的最大值是 5
,因此函数 max
返回 5
并将其赋给变量 maximum
。最后,我们使用 print 函数将变量 maximum 的值输出到屏幕上。
还有一点需要注意:如果 iterable
为空,max 函数会引发一个 ValueError
。
判断字符串
如果我们想要求出一个字符串中的最大字符,可以像下面这样使用 max
函数:
string = 'abcde'
maximum = max(string)
print(maximum) # 输出:e
如果我们想要比较字符串中字符的 ASCII 码来确定最大值,可以将 key
参数设置为内置函数 ord
,这样就可以使用 ASCII 码来比较字符的大小了。例如:
string = 'abcde'
maximum = max(string, key=ord)
print(maximum) # 输出:e
求元组最大值
如果我们想要求出一个元组中的最大值,可以像下面这样使用 max 函数:
tuple = (1, 2, 3, 4, 5)
maximum = max(tuple)
print(maximum) # 输出:5
求字典最大值
如果我们想要求出一个字典中的最大值,可以使用 max
函数的 key
参数指定要比较的键:
dictionary = {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}
maximum = max(dictionary, key=lambda x: dictionary[x])
print(maximum) # 输出:'e'
如果我们想要在 iterable
为空时指定一个默认值,可以使用 max
函数的 default
参数。例如:
numbers = []
maximum = max(numbers, default=-1)
print(maximum) # 输出:-1
在这个例子中,我们使用了空列表作为 iterable
参数,并将 default
参数设置为 -1
。因此,当 iterable 为空时,max 函数会返回 -1。
求自定义对象
如果我们想要求出一个自定义类型的对象的最大值,可以使用 max
函数的 key
参数指定一个用于比较的函数。
例如,假设我们有一个名为 Person
的自定义类型,其中包含两个字段:name
和 age
。我们可以使用下面的代码来求出年龄最大的人:
class Person:def __init__(self, name, age):self.name = nameself.age = agepeople = [Person('Alice', 20), Person('Bob', 30), Person('Charlie', 25)]
maximum = max(people, key=lambda x: x.age)
print(maximum.name) # 输出:'Bob'
在这个例子中,我们使用了一个匿名函数来比较每个人的年龄。这个匿名函数会返回一个人的年龄,因此 max
函数会使用这个年龄来比较大小。最后,我们使用变量 maximum
的 name
字段输出年龄最大的人的名字。
关于key示例分析
def most_freq(list):return max(set(list), key=list.count)
Test = [10, 10, 20, 20, 10, 30, 30, 30, 20, 10]
print(most_freq(Test)) # 10
这段代码定义了一个函数 most_freq
,它接受一个参数 list
,并返回这个列表中出现次数最多的元素。
在函数体内,我们首先调用内置函数 set
并将列表 list
作为参数传递给它。这个函数会创建一个新的集合,其中包含列表 list
中所有不重复的元素。接下来,我们调用 max
函数并将这个集合作为参数传递给它。
我们还使用了 max
函数的 key
参数,指定了一个函数 list.count
。这个函数会返回列表 list
中给定元素的出现次数。因此,max 函数会使用这个函数来比较集合中的元素,并返回出现次数最多的元素。
接下来,我们调用函数 most_freq
并将列表 Test
作为参数传递给它。这个函数会返回列表 Test
中出现次数最多的元素,并将其作为结果返回。最后,我们使用 print 函数将结果输出到屏幕上。
因此,这段代码的输出应该是 10
。
Python中max函数key的用法详解相关推荐
- Python中sorted()函数的高级用法详解
sorted()函数的作用是对对象进行排序 函数函数格式: sorted(iterable,key,reverse),key参数可传入一个自定义函数 下边通过具体例子说明sorted的具体用法: 一维 ...
- matlab中scatter函数怎么用,Python中scatter函数参数及用法详解
最近开始学习Python编程,遇到scatter函数,感觉里面的参数不知道什么意思于是查资料,最后总结如下: 1.scatter函数原型 2.其中散点的形状参数marker如下: 3.其中颜色参数c如 ...
- python scatter函数参数,Python中scatter函数参数及用法详解
最近开始学习Python编程,遇到scatter函数,感觉里面的参数不知道什么意思于是查资料,最后总结如下: 1.scatter函数原型 2.其中散点的形状参数marker如下: 3.其中颜色参数c如 ...
- python scatter参数详解_Python中scatter函数参数及用法详解
最近开始学习Python编程,遇到scatter函数,感觉里面的参数不知道什么意思于是查资料,最后总结如下: 1.scatter函数原型 2.其中散点的形状参数marker如下: 3.其中颜色参数c如 ...
- python scatter参数详解_Python 中 scatter 函数参数及用法详解
Python 中 scatter 函数参数及用法详解 Python 中 scatter 函数参数及用法详解 这里有新鲜出炉的 Python 教程, 程序狗速度看过来! Python 编程语言 Pyth ...
- python中tile的用法_python3中numpy函数tile的用法详解
tile函数位于python模块 numpy.lib.shape_base中,他的功能是重复某个数组.比如tile(A,n),功能是将数组A重复n次,构成一个新的数组,我们还是使用具体的例子来说明问题 ...
- python3 isinstance用法_对python中assert、isinstance的用法详解
1. assert 函数说明: Assert statements are a convenient way to insert debugging assertions into a program ...
- python的raw_ input是什么意思-对python中raw_input()和input()的用法详解
最近用到raw_input()和input()来实现即时输入,就顺便找了些资料来看,加上自己所用到的一些内容,整理如下: 1.raw_input() raw_input([prompt]) -> ...
- python中str和input_对python中raw_input()和input()的用法详解
最近用到raw_input()和input()来实现即时输入,就顺便找了些资料来看,加上自己所用到的一些内容,整理如下: 1.raw_input() raw_input([prompt]) -> ...
最新文章
- 怎样学好python-零基础如何学好Python?
- redis系列:通过文章点赞排名案例学习sortedset命令
- 优秀的程序员都有哪些习惯?
- word中安装MathType
- python可变序列_python序列中可变数据类型有什么
- 解锁环境变量在云原生应用中的各种姿势
- linux安装pgsql源码包解压,在Linux(centos)中使用源码安装pgRouting
- react笔记-设计复合式控件(三)
- ffmpeg 推流同时录像命令_ffmpeg推流命令
- java中mouselistener的用法_关于MouseListener接口的简单使用
- android语音识别 android.speech 包分析
- 在 Vue 中是使用插槽
- [图]礼仪大赛策划方案:使用PPT,如何打造一场专业而又经济的礼仪大赛呢?
- 无线路由器破解教程-CDlinux(by 星空武哥)
- 学习编程必备常用英语单词
- 如何编辑图片合成图片?让我们来看看这些合成方法
- 计算机技术应用广泛以下属于科学计算方面,2016年12月计算机二级MSoffice选择题习题...
- nms剔除包含的bbox
- 第二章.Java程序设计基础
- 网络拓扑abor.js库---力导向
热门文章
- [译] Genymotion 现在提供了 Open GApps 安装程序
- [WTL/ATL]_[初级]_[TreeView控件如何显示ToolTip]
- 卡尔曼滤波器 bilibili视频版
- 软件工程师转正申请_这是申请软件工程师工作的4种最佳方法-以及如何使用它们。...
- 周岁虚岁计算html源码,在excel中如何计算周岁.虚岁以及实际年龄?
- spring boot Actuator之自定义Endpoint
- win7变成xp风格了怎么改回_win7桌面怎么改成xp风格?win7桌面改成xp风格方法
- 在手机上查看vue项目
- 开发2年半,「纪念碑谷」的团队做了一款开放世界“观鸟”游戏
- 修复VSCode关联文件的图标 - Python, C++,Java