python中的min函数的key的用法 - abs绝对值
前言
继续上一章节提及的 Python 中 min() 函数的用法,包括其基本语法、处理列表、接收多个参数
这个章节将补充一些新的知识点例如: min函数中key的另一种用法abs绝对值
min(iterable, *iterables, key=None, default=None)
知识点
key
参数
key 是一个可选参数,它是一个函数,用于从每个元素中提取一个用于比较的键值。通过 key 参数,可以自定义比较逻辑,而不仅仅是直接比较元素本身。
作用
-
默认情况下,min() 函数会直接比较元素的大小(对于数字)或字典序(对于字符串)。
-
如果提供了 key 参数,min() 函数会先对每个元素调用 key 函数,然后根据 key 函数的返回值进行比较。
案例1
1. 使用 key=abs
num = [-1, -2, -3, 1, 2, 3]
print(min(num, key=abs)) # 输出结果:-1
解释
-
abs
函数:abs(x) 返回 x 的绝对值。 -
key=abs
:在 min() 函数中,key=abs 表示在比较元素时,先对每个元素调用abs
函数,然后比较它们的绝对值。 -
比较过程:
-
计算每个元素的绝对值:
-
abs(-1) = 1
-
abs(-2) = 2
-
abs(-3) = 3
-
abs(1) = 1
-
abs(2) = 2
-
abs(3) = 3
-
-
比较这些绝对值,最小的绝对值是
1
。 -
因此,min() 函数返回绝对值为
1
的元素,即-1
(因为-1
在列表中出现得更早)。
-
2. 不使用 key=abs
num = [-1, -2, -3, 1, 2, 3]
print(min(num)) # 输出结果:-3
解释
-
默认比较逻辑:如果没有提供 key 参数,min() 函数会直接比较元素的大小。
-
比较过程:
-
列表中的元素是 [-1, -2, -3, 1, 2, 3]。
-
按照默认的比较逻辑(数字的大小),最小的元素是-3。
-
因此,min() 函数返回-3。
-
总结
-
使用
key=abs
:-
比较的是元素的绝对值。
-
返回绝对值最小的元素。
-
在这个例子中,返回的是-1,因为它的绝对值是1,是所有绝对值中最小的。
-
-
不使用
key=abs
:-
比较的是元素本身。
-
返回数值最小的元素。
-
在这个例子中,返回的是-3,因为它是列表中最小的数字。
-