我们说我有
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])
答案 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)