将lambda及其键的最大值放在一行中

时间:2018-02-22 11:47:31

标签: python python-3.x lambda max

我们说我有

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

我想在中为每个 i应用一个lambda( 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])

1 个答案:

答案 0 :(得分:3)

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

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

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

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