3

我如何在具有最小 y 的对列表中获得最大对?

我得到了这个清单:

L =[[1,3],[2,5],[-4,0],[2,1],[0,9]]

使用 max(L) 我得到 [2,5],但我想要 [2,1]。

4

3 回答 3

18
max(L, key=lambda item: (item[0], -item[1]))

输出:

[2, 1]
于 2011-02-25T14:18:55.417 回答
1

您的请求有点神秘,但我认为这就是您想要的:

x, y = zip(*L)
maxPairs = [L[i] for i,a in enumerate(x) if a == max(x)]
returnPair = sorted(maxPairs)[0]
于 2011-03-20T20:52:02.140 回答
0
import operator

get_y= operator.itemgetter(1)
min(L, key=get_y)[0]

找到最小y的坐标,检索x

如果您不喜欢operator.itemgetter,请执行以下操作:

min(L, key=lambda c: c[1])[0]
于 2011-03-20T20:44:20.587 回答