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
。