在一行中获取 lambda 及其键的最大值



假设我有

a = [11,2,5,-3]

我想应用一个lambda(a中的每个i都是1/i),我想得到一个输出:i,max(1/i)

output: 2, 0.5

如何在仅调用max一次的一代码中实现它?

我可以像下面这样,但它调用了max函数两次。

max(a, key = lambda i : 1/i), max([1/i  for i in a])

您已经知道key可以与max一起使用,因此您只需要提前创建元组对,然后在元组对上使用带有keymax,如下所示:

max([(i,1/i) for i in a],key = lambda x: x[1])

或者如前所述,您可以使用元组比较:

max((1/i, i) for i in a)

最新更新