Форум сайта python.su
0
Всем доброго времени суток! Помогите пожалуйста, как отсортировать словарь по значениям по убыванию и (если значения одинаковые), то по ключам по возрастанию (по алфавиту)
например 
names = {'Михаил':1010, 'Мария': 1010, 'Алексей':1200, 'Андрей':12}
names = { 'Алексей':1200, 'Мария': 1010, 'Михаил':1010, 'Андрей':12}
Офлайн
253
Словарь невозможно отсортировать. список например можно.
Офлайн
ann_beggin
можешь отсортировать список значений словаря
>>> names = {'Михаил':1010, 'Мария': 1010, 'Алексей':1200, 'Андрей':12} >>> sorted(names.items(),key = lambda x: x[1],reverse=True) [('Алексей', 1200), ('Михаил', 1010), ('Мария', 1010), ('Андрей', 12)] >>>
Отредактировано vic57 (Март 29, 2018 20:48:39)
Офлайн
221
Вообще словарь это неупорядоченная структура данных. Поэтому прямой ответ на ваш вопрос - никак.
Но если очень хочется, то можно воспользоваться похожей на словарь структурой OrderedDict в модуле collections , а вот как его заполнить корректно - нужно спроектировать и реализовать алгоритм.
Офлайн