假设我有
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一起使用,因此您只需要提前创建元组对,然后在元组对上使用带有key
的max
,如下所示:
max([(i,1/i) for i in a],key = lambda x: x[1])
或者如前所述,您可以使用元组比较:
max((1/i, i) for i in a)