Python中max函数key的用法详解 您所在的位置:网站首页 Python里的max Python中max函数key的用法详解

Python中max函数key的用法详解

2024-01-25 21:01| 来源: 网络整理| 查看: 265

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 = name self.age = age people = [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。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有