Как отсортировать словарь по значению
Словарь сортируют не сам по себе, а его пары — по значению — с помощью sorted() и параметра key.
sorted по значению
Берём пары словаря через items() и сортируем их, указав ключ сортировки — второй элемент пары (значение). key задаёт, по чему сравнивать.
score = {'Аня': 5, 'Ваня': 9, 'Оля': 7}
res = sorted(score.items(), key=lambda pair: pair[1])
print(res) # [('Аня', 5), ('Оля', 7), ('Ваня', 9)]
По убыванию
Добавьте reverse=True, чтобы получить от большего к меньшему — например, топ учеников по баллам. Результат — список пар, который при желании превращают обратно в словарь через dict().
Что такое key
key — это функция, которая говорит sorted, по какому признаку сравнивать элементы. Здесь мы берём значение пары. Тот же приём сортирует список слов по длине или список людей по возрасту.
Частые вопросы
Можно ли отсортировать по ключам? Да: sorted(score.items()) сортирует по ключам.
Останется ли это словарём? sorted вернёт список пар; оберните в dict(), если нужен словарь.
Начать игру бесплатно