Сортировка словаря по значению (в убывающем порядке) и по ключу (в алфавитном порядке)
Некорректно работает сортировка, когда нужно отсортировать сначала по значениям и потом по ключам (при одинаковых значениях, сортировка по ключам должна выполняться в алфавитном порядке).
from operator import itemgetter
m = { 'Ехал': 1, 'Грека': 3, 'Через': 1, 'Реку': 2, 'Видит': 1, 'В': 2, 'Руку': 2, 'Рак': 1 }
for i in sorted(m.items(), key=itemgetter(1, 0))[::-1]:
print(i)
Был использован ешё такой вариант, результат тот же:
m = { 'Ехал': 1, 'Грека': 3, 'Через': 1, 'Реку': 2, 'Видит': 1, 'В': 2, 'Руку': 2, 'Рак': 1 }
for i in sorted(m.items(), key=lambda x: (x[1], x[0])):
print(i)
Ответы (1 шт):
Автор решения: MaxU
→ Ссылка
res = sorted(m.items(), key=lambda x: (-x[1], x[0]))
# NOTE: ----------------------------> ^
результат:
In [129]: res
Out[129]:
[('Грека', 3),
('В', 2),
('Реку', 2),
('Руку', 2),
('Видит', 1),
('Ехал', 1),
('Рак', 1),
('Через', 1)]