【发布时间】:2011-07-04 08:17:58
【问题描述】:
我如何在具有最小 y 的对列表中获得最大对?
我得到了这份清单:
L =[[1,3],[2,5],[-4,0],[2,1],[0,9]]
使用 max(L) 我得到 [2,5],但我想要 [2,1]。
【问题讨论】:
我如何在具有最小 y 的对列表中获得最大对?
我得到了这份清单:
L =[[1,3],[2,5],[-4,0],[2,1],[0,9]]
使用 max(L) 我得到 [2,5],但我想要 [2,1]。
【问题讨论】:
max(L, key=lambda item: (item[0], -item[1]))
输出:
[2, 1]
【讨论】:
max(L, key=lambda (x, y): (x, -y))
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]
【讨论】:
您的请求有点神秘,但我认为这就是您想要的:
x, y = zip(*L)
maxPairs = [L[i] for i,a in enumerate(x) if a == max(x)]
returnPair = sorted(maxPairs)[0]
【讨论】: