Python: получить максимальную пару в списке пар с min y - PullRequest
3 голосов
/ 25 февраля 2011

Как получить максимальную пару в списке пар с min y?

Я получил этот список:

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

С max (L) я получаю [2,5], но я хочу [2,1].

Ответы [ 3 ]

17 голосов
/ 25 февраля 2011
max(L, key=lambda item: (item[0], -item[1]))

Выход:

[2, 1]
1 голос
/ 20 марта 2011

Ваш запрос несколько загадочный, но я думаю, это то, что вы хотите:

x, y = zip(*L)
maxPairs = [L[i] for i,a in enumerate(x) if a == max(x)]
returnPair = sorted(maxPairs)[0]
0 голосов
/ 20 марта 2011
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]
...