Дима Asked:2022-06-12 20:52:04 +0800 CST2022-06-12 20:52:04 +0800 CST 2022-06-12 20:52:04 +0800 CST 为什么 key, lambda 输出不正确? 772 为什么显示两个的最大倍数 - 14? 毕竟,它应该打印 100: lst = [77, 14, 5, 9, 277, 100] print(max(lst, key=lambda x: x % 2 == 0)) 如果你写的是min而不是max,那么它通常会显示一个不是2的倍数的数字?这里有什么联系? python 1 个回答 Voted Best Answer Lawrence 2022-06-14T10:59:19+08:002022-06-14T10:59:19+08:00 max 的关键参数负责如何选择最大的,而不是过滤。代码应如下所示 lst = [77, 14, 5, 9, 277, 100] print(max(filter(lambda x: x % 2 == 0, lst))) 您的代码找到了第一个偶数。当您以这种方式设置 key 参数时,列表变为 [False, True, False, False, False, True],并且这里的第一个最大值是第二个元素是有道理的,在原始列表中的值为 14 .
max 的关键参数负责如何选择最大的,而不是过滤。代码应如下所示
您的代码找到了第一个偶数。当您以这种方式设置 key 参数时,列表变为 [False, True, False, False, False, True],并且这里的第一个最大值是第二个元素是有道理的,在原始列表中的值为 14 .