Как отсортировать словарь по ключу в Python

По умолчанию словари Python не упорядочены. Если вы отсортируете словарь с помощью метода sorted (), вы не сохраните их в dict таким образом, чтобы сохранить порядок. Порядок будет изменен. Итак, вопрос в том, есть ли способ отсортировать словарь по ключам и сохранить порядок? Да, это. Давайте посмотрим, как это сделать.

Содержание
  1. Сортировать словарь по ключу в Python
  2. Синтаксис
  3. Пример
  4. Вывод
  5. OrderedDict ([('a', 46), ('b', 19), ('e', 11), ('k', 21)]) Клавиша -значение изменения при упорядочивании Если значение определенного ключа изменяется, ключ остается неизменным в OrderedDict. import collectionsprint ("Перед изменением: n") odict = collections.OrderedDict () odict ['a'] = 11odict ['b'] = 19odict ['c'] = 21odict [ 'd'] = 46print (odict.items ()) print ("После изменения: n") odict ['b'] = 18print (odict.items ()) Вывод Перед изменением: odict_items ([('a', 11), ('b', 19), ('c', 21), ('d' , 46)]) После изменения: odict_items ([('a', 11), ('b', 18), ('c', 21), ('d', 46)]) Из вывода видно, что порядок словаря не изменился, но значение изменилось с 19 на 18. Удаление и повторная вставка в словарь Python Есть очень много случаев, когда мы удаляем ключи и повторно вставляем ключи с разными значениями в словарь. Удаление и повторная вставка одного и того же ключа вернет его обратно как OrderedDict; он поддерживает порядок вставки. import collectionsprint ("Перед удалением: n") odict = collections.OrderedDict () odict ['a'] = 11odict ['b'] = 19odict ['c'] = 21odict ['d'] = 46print (odict.items ()) print ("После удаления: n") odict.pop ('b') print (odict.items ()) print ("После повторной вставки: n") odict ['b'] = 18print (odict.items ()) Вывод Перед удалением: odict_items ([('a', 11), ('b', 19), ('c', 21), ('d', 46)]) После удаления: odict_items ([( 'a', 11), ('c', 21), ('d', 46)]) После повторной вставки: odict_items ([('a', 11), ('c', 21), (' d ', 46), (' b ', 18)]) Как видно из выходных данных, мы использовали метод dict.pop () для удалите ключ, а затем мы повторно вставим ключ со значением, но он будет вставлен в конец словаря. Это для сортировки словаря по ключу в Python.
  6. Клавиша -значение изменения при упорядочивании
  7. Вывод
  8. Удаление и повторная вставка в словарь Python
  9. Вывод

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

Чтобы отсортировать словарь по key в Python используйте комбинацию методов sort () и OrderedDict () . OrderedDict () — это метод модуля Collections , который возвращает экземпляр подкласса dict с методом, специализированным для изменения порядка словаря. Функция sorted () возвращает отсортированный список указанного итеративного объекта.

Метод OrderedDict () сохраняет порядок, в котором вставлены ключи. Обычный dict не отслеживает порядок вставки, и его итерация дает значения в произвольном порядке.

Синтаксис

collections.OrderedDict([items provided)

Метод OrderedDict () принимает словарь в качестве аргумента.

Пример

Для работы с методом OrderedDict () импортируйте модуль коллекций в свой файл.

 импортировать коллекции 

Теперь, определить словарь, используя фигурные скобки. Определим нумерованные словари.

 dict = {2: 21, 1: 11, 4: 46, 3: 19  } 

Чтобы получить ключи и значения словаря в Python. используйте метод dict.items ().

Чтобы получить отсортированный словарь по ключам, используйте комбинацию dict.items (), sorted (), и OrderedDict () .

 orders_dict = collections.OrderedDict (sorted (dict.items ())) 

Давайте посмотрим на полная программа.

 import collectionsdict = {2: 21, 1: 11, 4: 46, 3: 19} orders_dict = collections.OrderedDict (sorted (dict.items ())) print (orders_dict  ) 

Вывод

 OrderedDict ([(1, 11), (2, 21), (3, 19),  (4, 46)]) 

Из вывода видно, что словарь упорядочен в порядке возрастания.

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

 import collectionsdict = {"k  ": 21," e ": 11," a ": 46," b ": 19} orders_dict = collections.OrderedDict (sorted (dict.items ())) print (orders_dict) 

 OrderedDict  ([('a', 46), ('b', 19), ('e', 11), ('k', 21)]) 

Клавиша -значение изменения при упорядочивании

Если значение определенного ключа изменяется, ключ остается неизменным в OrderedDict .

 import collectionsprint ("Перед изменением:  n") odict = collections.OrderedDict () odict ['a'] = 11odict ['b'] = 19odict ['c'] = 21odict [  'd'] = 46print (odict.items ()) print ("После изменения:  n") odict ['b'] = 18print (odict.items ()) 

Вывод

 Перед изменением: odict_items ([('a', 11), ('b', 19), ('c', 21), ('d'  , 46)]) После изменения: odict_items ([('a', 11), ('b', 18), ('c', 21), ('d', 46)]) 

Из вывода видно, что порядок словаря не изменился, но значение изменилось с 19 на 18.

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

Есть очень много случаев, когда мы удаляем ключи и повторно вставляем ключи с разными значениями в словарь. Удаление и повторная вставка одного и того же ключа вернет его обратно как OrderedDict; он поддерживает порядок вставки.

 import collectionsprint ("Перед удалением:  n") odict = collections.OrderedDict () odict ['a'] = 11odict ['b']  = 19odict ['c'] = 21odict ['d'] = 46print (odict.items ()) print ("После удаления:  n") odict.pop ('b') print (odict.items ()) print  ("После повторной вставки:  n") odict ['b'] = 18print (odict.items ()) 

Вывод

 Перед удалением: odict_items ([('a', 11), ('b', 19), ('c', 21), ('d', 46)]) После удаления: odict_items ([(  'a', 11), ('c', 21), ('d', 46)]) После повторной вставки: odict_items ([('a', 11), ('c', 21), ('  d ', 46), (' b ', 18)]) 

Как видно из выходных данных, мы использовали метод dict.pop () для удалите ключ, а затем мы повторно вставим ключ со значением, но он будет вставлен в конец словаря.

Это для сортировки словаря по ключу в Python.

Оцените статью
nanomode.ru
Добавить комментарий