代码之家  ›  专栏  ›  技术社区  ›  Shaun Han

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

  •  1
  • Shaun Han  · 技术社区  · 4 年前

    正如下面的代码所示,我知道如何从列表中获取使函数最大化的项,但我也希望将最大化值与该项一起获得。实际上,我有一个计算开销很大的函数,所以我不想再运行这个函数了。这里我只是用一个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)
    
    1 回复  |  直到 4 年前
        1
  •  1
  •   Dani Mesejo    4 年前

    maxnum maxval ,然后将第二个位置的值作为键传递(使用 itemgetter

    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)
    
    推荐文章