Как отсортировать словарь по значению в Python?
Сортировка словаря в Python: значения, ключи и многое другое
Вы имеете словарь, но хотите отсортировать пары ключ-значение. Возможно, вы попытались передать словарь в функцию sorted()
, но получили неожиданный результат. В этом руководстве вы узнаете все, что вам нужно знать, если вы хотите сортировать словари в Python.
В этом руководстве вы узнаете:
- Как использовать функцию
sorted()
- Как получить представления словаря для итерации
- Как словари преобразуются в списки в процессе сортировки
- Как указать ключ сортировки, чтобы сортировать словарь по значению, ключу или вложенному атрибуту
- Обзор генераторов словарей и конструктора
dict()
для воссоздания ваших словарей - Рассмотрение альтернативных структур данных для ваших ключ-значение данных
По пути вы также будете использовать модуль timeit
для замера времени выполнения вашего кода и получения конкретных результатов для сравнения различных методов сортировки данных по ключу-значению. Вы также рассмотрите, действительно ли отсортированный словарь - это самый лучший вариант, поскольку это не особо распространенный шаблон.
Чтобы извлечь максимальную пользу из этого руководства, вам следует знать о словарях, списках, кортежах и функциях. С этими знаниями вы сможете отсортировать словари к концу этого руководства. Также будет полезно иметь представление о высших функциях, таких как лямбда-функции, хотя это не является обязательным требованием.
Бесплатная загрузка: [Нажмите здесь, чтобы скачать
Прежде всего, вы изучите некоторые базовые знания, прежде чем попытаться отсортировать словарь в Python.
Восстановление порядка словаря в Python
До версии Python 3.6 словари были неупорядоченными. Словарь Python - это реализация хеш-таблицы, которая традиционно является неупорядоченной структурой данных.
Как побочный эффект компактной реализации словаря в Python 3.6, словари начали сохранять порядок вставки. Начиная с версии 3.7, этот порядок вставки стал _ гарантированным _.
Если вы хотели сохранить упорядоченный словарь в качестве структуры данных до версии Python 3.7, вам приходилось использовать класс collections.OrderedDict
. Но теперь вам больше не нужно делать это, потому что порядок вставки в словарях Python гарантирован.
Вот пример, для наглядности:
Как видите, словарь сохраняет порядок вставки пар ключ-значение, что делает его удобным для многих задач. Также важно отметить, что порядок может изменяться при изменении словаря.