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

Сортировка словаря по значению в Python

[

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

Автор: Иэн Карри data-structures intermediate

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

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

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

Перед началом

Чтобы получить список путей из списка словарей, мы можем использовать функцию map() вместе с лямбда-выражением, чтобы выбрать нужные ключи. Затем мы можем использовать функцию list() для преобразования полученного представления в список путей.

path_list = list(map(lambda x: x['path'], path_dict))
  1. Вручную отсортировать словарь по значению
sorted_dict = sorted(path_dict.items(), key=lambda x: x[1])
  1. Отсортировать словарь по ключу в обратном порядке
sorted_dict = sorted(path_dict.items(), key=lambda x: x[0], reverse=True)
  1. Отсортировать словарь по вложенному значению
sorted_dict = sorted(path_dict.items(), key=lambda x: x[1]['time'])
  1. Сортировка словаря по нескольким критериям
sorted_dict = sorted(path_dict.items(), key=lambda x: (x[1]['time'], x[1]['distance']))
  1. Восстановление словаря из упорядоченного списка
restored_dict = dict(sorted_dict)

Рассмотрение стратегических и производительностных вопросов

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

  • Применение специальных функций получателей для увеличения производительности и читаемости
  • Измерение производительности при использовании itemgetter()
  • Сопоставление производительности разных структур данных
  • Сравнение производительности сортировки
  • Сравнение производительности поиска

Заключение

В этом руководстве вы узнали, как отсортировать словари в Python. Вы изучили различные методы сортировки и их производительность, а также рассмотрели стратегические вопросы, когда дело доходит до сортировки словарей.

Дополнительные ресурсы

  1. Документация Python по словарям
  2. Реализация OrderedDcit в Python
  3. Модуль timeit
  4. PEP 468
  5. PEP 468 Thread
  6. История и внутреннее строение Python Dictionaries
  7. Источник кода на GitHub

Это информативное руководство поможет вам освоить сортировку словарей в Python, а также понять производительностные и стратегические вопросы, связанные с этой операцией.