Как отсортировать словарь по значениям от большего к меньшему?

Как отсортировать словарь по значениям от большего к меньшему в Python?


Ответы (2 шт):

Автор решения: Zhihar

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

однако вы можете перевести словарь в список и отсортировать уже список

my_list = sorted(list(my_dict.items()))
→ Ссылка
Автор решения: GrAnd

Начиная с версии Python 3.6 порядок элементов словаря сохраняется с момента создания. Так что можно просто создать новый словарь из элементов старого, предварительно отсортировав их. Или воспользоваться олд-скульным OrderedDict.

from collections import OrderedDict

d = {"z":44, "a":102, "c":-2}
print("dict =", d)

nd = dict(sorted(d.items(), key=lambda x: x[1]))
print("new dict =", nd)

od = OrderedDict(sorted(d.items(), key=lambda x: x[1]))
print("ordered dict =", od)

Вывод:

dict = {'z': 44, 'a': 102, 'c': -2}
new dict = {'c': -2, 'z': 44, 'a': 102}
ordered dict = OrderedDict([('c', -2), ('z', 44), ('a', 102)])
→ Ссылка