Рубрики
Без рубрики

Сортировать словарь в Python

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

Автор оригинала: Pankaj Kumar.

Вступление

В этом руководстве мы собираемся взглянуть на различные способы, следующие, которые мы можем Сортировать словарь в Python Отказ

В Python, a Словарь это коллекция пар клавишных ценностей. Последовательность такого ключ и ценность Пары разделены запятыми. Эти пары называются Предметы Отказ

Разные способы сортировки словаря в Python

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

Итак, давайте теперь посмотрим на разные методы, с помощью которых мы можем отсортировать словарь по ключу или по значению Отказ

1. Сортировать словарь по ключу

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

Давайте посмотрим, как.

d = { 5: 1 , 4: 2 , 3: 3 , 2: 4 , 1: 5 }

print("The original dictionary: ", d)

#sorting by key
a = dict(sorted(d.items(), key=lambda x: x[0]))

print("After sorting by key: ", a)

Выход:

The original dictionary:  {5: 1, 4: 2, 3: 3, 2: 4, 1: 5}
After sorting by key:  {1: 5, 2: 4, 3: 3, 4: 2, 5: 1}

Здесь,

  • d. items () Метод возвращает список кортежей (элементов), содержащих Ключи и их соответствующие Значения ,
  • лямбда Функция возвращает ключ ( 0-й элемент) для конкретного предмета кортеля,
  • Когда они передаются на отсортировано () Метод, он возвращает отсортированную последовательность, которая затем вписывается в словарь.

Помните, этот метод можно использовать в Python 3.6+ Версии, как оно рассматривает словари как упорядоченные последовательности. Для более старых версий мы можем заменить

from operator import itemgetter

d = { 5: 1 , 4: 2 , 3: 3 , 2: 4 , 1: 5 }
print("Original Dict: ", d)

#sorting by key
s_d = dict(sorted(d.items(), key=itemgetter(0)))
print("Sorted dict: ", s_d)

Выход:

Original Dict:  {5: 1, 4: 2, 3: 3, 2: 4, 1: 5}
Sorted dict:  {1: 5, 2: 4, 3: 3, 4: 2, 5: 1}

Вот и методы отсортировано () и Предметы () работать так же. Но вместо лямбда Функция, itemgetter (0) Метод возвращает Callable объект, который выбирает 0-й предмет от его операнда, используя операнд __getitem __ () метод. В этом случае, как нам нужно сортировать по ключу мы рассмотрим 0-й элемент.

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

Сортировка словаря по значению аналогично сортировке по ключу. Единственное различие в том, что этот тип параметра на основе которого будет сделана сортировка, это ценность часть соответствующих предметов.

Следовательно, как мы делали ранее, мы можем использовать отсортировано () Способ наряду с лямбдами функцией для Python 3.6+ Версии. Давайте посмотрим, как.

d = { 0: 'd', 1: 'c', 2: 'b', 3: 'a' }

print("The original dictionary: ", d)

#sorting by value
a = dict(sorted(d.items(), key=lambda x: x[1]) )

print("After sorting by value: ", a)

Выход:

The original dictionary:  {0: 'd', 1: 'c', 2: 'b', 3: 'a'}
After sorting by value:  {3: 'a', 2: 'b', 1: 'c', 0: 'd'}

Точно так же здесь, согласно значениям, возвращенным лямбда Функция ( x [1] Значение для элемента x ) словарь D отсортирован.

Опять же для более старых версий Python следуйте указанному ниже методу.

from operator import itemgetter

d = { 0: 'd', 1: 'c', 2: 'b' , 3: 'a' }
print("Original Dict: ", d)

#sorting by value
s_d = dict(sorted(d.items(), key=itemgetter(1)))
print("Sorted dict: ", s_d)

Выход:

Original Dict:  {0: 'd', 1: 'c', 2: 'b', 3: 'a'}
Sorted dict:  {3: 'a', 2: 'b', 1: 'c', 0: 'd'}

Аналогичным образом, отсортировано () наряду с D.Items () и itemgetter (1) методами сортировки словаря d на основе значения.

3. Сортировка в обратном порядке

отсортировано () Метод поставляется с другим аргументом Обратный Отказ Это можно использовать для указания порядка, в котором должна быть сделана сортировка. Если прошло Правда сортировка проходит в Обратный порядок (по убыванию). И если Ложь пропущено (по умолчанию), сортировка имеет место в восходящая заказывать.

Давайте попробуем понять это на примере, где мы пытаемся обратить вспять словарь по ключу.

d = { 'a': 23, 'g': 67, 'e': 12, 45: 90}

print("The original dictionary: ", d)

#sorting by value in reverse
a = dict(sorted(d.items(), reverse = True, key=lambda x: x[1]))
print("After sorting by value in reverse order: ", a)

#sorting by value in ascending order
a = dict(sorted(d.items(), key=lambda x: x[1]))#by default reverse is set to False
print("After sorting by value in ascending order: ", a)

Выход:

The original dictionary:  {'a': 23, 'g': 67, 'e': 12, 45: 90}
After sorting by value in reverse order:  {45: 90, 'g': 67, 'a': 23, 'e': 12}
After sorting by value in ascending order:  {'e': 12, 'a': 23, 'g': 67, 45: 90}

С вышеуказанного выхода, Ясно, что прохождение обратного параметра как Правда Вышеуказанный словарь отсортирован в обратном порядке ( нисходящее ).

Заключение

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

Для любых дополнительных вопросов не стесняйтесь использовать комментарии ниже.

Рекомендации