как найти максимальное значение в словаре python?
Найти три ключа с самыми высокими значениями в словаре
my_dict = {'a':500, 'b':5874, 'c': 560,'d':400, 'e':5874, 'f': 20}
Ответы (2 шт):
Автор решения: Victor VosMottor
→ Ссылка
my_dict = {'a':500, 'b':5874, 'c': 560,'d':400, 'e':5874, 'f': 20}
print(sorted(my_dict.values())[-3:])
Func:
lambda v, d: sorted(d.values())[-v:]
Автор решения: dIm0n
→ Ссылка
Вот так вот для ключей+значений:
import heapq, operator
my_dict = {'a': 500, 'b': 5874, 'c': 560, 'd': 400, 'e': 5874, 'f': 20}
print(heapq.nlargest(3, my_dict.items(), key=operator.itemgetter(1)))
Вот так вот только для ключей:
import heapq, operator
my_dict = {'a': 500, 'b': 5874, 'c': 560, 'd': 400, 'e': 5874, 'f': 20}
print(list(zip(*heapq.nlargest(3, my_dict.items(), key=operator.itemgetter(1))))[0])
Или проще:
import heapq
my_dict = {'a': 500, 'b': 5874, 'c': 560, 'd': 400, 'e': 5874, 'f': 20}
print(heapq.nlargest(3, my_dict, key=lambda k: my_dict[k]))