正如下面的代码所示,我知道如何从列表中获取使函数最大化的项,但我也希望将最大化值与该项一起获得。实际上,我有一个计算开销很大的函数,所以我不想再运行这个函数了。这里我只是用一个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 ,然后将第二个位置的值作为键传递(使用 itemgetter
maxnum
maxval
import math from operator import itemgetter lst = list(range(100)) def sigmoid(x): return 1 / (1 + math.exp(-x)) result = max((e, sigmoid(e)) for e in lst, key=itemgetter(1)) print(result)
输出
(37, 1.0)