从python列表中获取最大化函数的项以及最大化值

从python列表中获取最大化函数的项以及最大化值,python,list,lambda,key,max,Python,List,Lambda,Key,Max,正如下面的代码所示,我知道如何从列表中获取最大化函数的项,但我也希望与该项一起获得最大化值。实际上,我有一个非常昂贵的函数,所以我不想再次运行该函数。这里我只使用一个sigmoid函数作为例子 import math lst = list(range(100)) maxnum = max(lst, key=lambda x: 1 / (1 + math.exp(-x))) maxval = 1 / (1 + math.exp(-maxnum)) print(maxnum, maxval) 使

正如下面的代码所示,我知道如何从列表中获取最大化函数的项,但我也希望与该项一起获得最大化值。实际上,我有一个非常昂贵的函数,所以我不想再次运行该函数。这里我只使用一个sigmoid函数作为例子

import math

lst = list(range(100))
maxnum = max(lst, key=lambda x: 1 / (1 + math.exp(-x)))
maxval = 1 / (1 + math.exp(-maxnum))
print(maxnum, maxval)

使用元组存储
maxnum
maxval
,如下所示,然后将值作为键传递到第二个位置(在下面的代码中使用):

输出

(37, 1.0)

这是一个很好的答案。只是好奇,是否仍然可以使用lambda表达式?您想在哪里使用lambda表达式?您可以通过lambda表达式更改itemgetter,但不确定您的意思。我得到错误“如果不是唯一的参数,则必须将生成器表达式括起来”。
result=max((e,sigmoid(e)),key=itemgetter(1))
适用于我
(37, 1.0)