Как вернуть ключ с наибольшим значением в словаре - PullRequest
0 голосов
/ 29 марта 2020

Скажем, у меня есть словарь, который выглядит следующим образом:

dct = {'key1':('Hello, Python!', 1), 'key2':(10, 2), 'aa':(9.9, 3)}

Как мне вернуть ключ, имеющий наибольшее 2-е значение, ie. самое высокое 2-е значение между 1, 2 и 3 - 3, поэтому возвращаемый ключ:

'aa'

Ответы [ 2 ]

1 голос
/ 29 марта 2020

Вы можете использовать max.

max(dct.items(),key=lambda x:x[1][1])
# ('aa', (9.9, 3))

Если вы просто хотите 'aa'

max(dct.items(),key=lambda x:x[1][1])[0]
# 'aa'
1 голос
/ 29 марта 2020

Сортировать словарь по значениям (item[1] при разборе dct.items()) и особенно по второму элементу этих значений (item[1][1]). Тогда ваш максимум является первым элементом отсортированного списка.

ordered_keys = [k for k, v in sorted(dct.items(), key=lambda item: item[1][1], reverse=True)]
best = ordered_keys[0]
...