Python - Нахождение макс. - PullRequest
       2

Python - Нахождение макс.

0 голосов
/ 14 сентября 2018

Я пытаюсь найти максимальное значение словаря, содержащего список, используя второй элемент в списке.

Вот пример.

data = {0: [6.6, 0.19920350542916282],
 1: [0.31000000000000005, 0.13792538097003],
 2: [1.55, 0.2935644431995964],
 3: [12.5, 0.2935644431995964]}

max(data.items(), key=lambda x:x[1][1])

output will be (2, [1.55, 0.2935644431995964])

Однако я хочу, чтобы вывод был (3, [12.5, 0.2935644431995964]})

т.е. когда два значения одинаковы, тогда снова посмотрите на первый элемент списка этих значений и выберите тот, который имеет максимум.

Ответы [ 2 ]

0 голосов
/ 14 сентября 2018

Это должно работать:

data = {0: [6.6, 0.19920350542916282],
 1: [0.31000000000000005, 0.13792538097003],
 2: [1.55, 0.2935644431995964],
 3: [12.5, 0.2935644431995964]}

max(data.items(), key=lambda x:(x[1][1],x[1][0]))
0 голосов
/ 14 сентября 2018

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

Затем используйте (x[1][1], x[1][0]) кортеж в качестве ключа:

>>> max(data.items(), key=lambda x:(x[1][1], x[1][0]))
(3, [12.5, 0.2935644431995964])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...