Пропустить до содержимого

Как отсортировать словарь по значению в Python?

[

Сортировка словаря в Python: значения, ключи и многое другое

Вы имеете словарь, но хотите отсортировать пары ключ-значение. Возможно, вы попытались передать словарь в функцию sorted(), но получили неожиданный результат. В этом руководстве вы узнаете все, что вам нужно знать, если вы хотите сортировать словари в Python.

В этом руководстве вы узнаете:

  • Как использовать функцию sorted()
  • Как получить представления словаря для итерации
  • Как словари преобразуются в списки в процессе сортировки
  • Как указать ключ сортировки, чтобы сортировать словарь по значению, ключу или вложенному атрибуту
  • Обзор генераторов словарей и конструктора dict() для воссоздания ваших словарей
  • Рассмотрение альтернативных структур данных для ваших ключ-значение данных

По пути вы также будете использовать модуль timeit для замера времени выполнения вашего кода и получения конкретных результатов для сравнения различных методов сортировки данных по ключу-значению. Вы также рассмотрите, действительно ли отсортированный словарь - это самый лучший вариант, поскольку это не особо распространенный шаблон.

Чтобы извлечь максимальную пользу из этого руководства, вам следует знать о словарях, списках, кортежах и функциях. С этими знаниями вы сможете отсортировать словари к концу этого руководства. Также будет полезно иметь представление о высших функциях, таких как лямбда-функции, хотя это не является обязательным требованием.

Бесплатная загрузка: [Нажмите здесь, чтобы скачать

Прежде всего, вы изучите некоторые базовые знания, прежде чем попытаться отсортировать словарь в Python.

Восстановление порядка словаря в Python

До версии Python 3.6 словари были неупорядоченными. Словарь Python - это реализация хеш-таблицы, которая традиционно является неупорядоченной структурой данных.

Как побочный эффект компактной реализации словаря в Python 3.6, словари начали сохранять порядок вставки. Начиная с версии 3.7, этот порядок вставки стал _ гарантированным _.

Если вы хотели сохранить упорядоченный словарь в качестве структуры данных до версии Python 3.7, вам приходилось использовать класс collections.OrderedDict. Но теперь вам больше не нужно делать это, потому что порядок вставки в словарях Python гарантирован.

Вот пример, для наглядности:

>>> d = {'two': 2, 'one': 1, 'three': 3}
>>> for key, value in d.items():
... print(key, value)
...
two 2
one 1
three 3

Как видите, словарь сохраняет порядок вставки пар ключ-значение, что делает его удобным для многих задач. Также важно отметить, что порядок может изменяться при изменении словаря.