Сортировка словаря на Python

На самом деле содержимое словаря отсортировать нельзя, т.к. словарь — это неупорядоченная структура данных. Даже если вы добавите в словарь элементы по алфавиту, при выводе они могут отобразиться далеко не в том порядке.

Однако при выводе только ключей или пар «ключ:значение» бывает важно, чтобы ключи шли по порядку. Решить проблему можно путем использования дополнительной упорядоченной структуры, — в данном случае, списка.

Алгоритм сортировки вывода содержимого словаря сводится к следующему:

  1. Создать список ключей словаря.
  2. Отсортировать его. (Списки в отличие от словарей сортировать можно.)
  3. Перебрать элементы списка, обращаясь по соответствующему ключу к элементу словаря.
d = {'a':12, 'v':14, 'ж':10, 'п':23, 'm':13, 'e':16, 'я':3, 'в':6,'t':24 }
print(d) # ВЫВОД - {'a': 12, 'в': 6, 'e': 16, 'я': 3, 'v': 14, 'ж': 10, 'm': 13, 'п': 23, 't': 24}
 
l = d.keys() # получаем ключи
print(l) # ВЫВОД - dict_keys(['a', 'в', 'e', 'я', 'v', 'ж', 'm', 'п', 't'])
 
l = list(l) # превращаем его в обычный список
print(l) # ВЫВОД - ['a', 'в', 'e', 'я', 'v', 'ж', 'm', 'п', 't']
 
l.sort() # сортируем список
print(l) # ВЫВОД - ['a', 'e', 'm', 't', 'v', 'в', 'ж', 'п', 'я']
 
for i in l: # вывод элементов словаря (ключ - значение) по алфавиту
    print(i, '-', d[i], end='; ') # ВЫВОД - a - 12; e - 16; m - 13; t - 24; v - 14; в - 6; ж - 10; п - 23; я - 3;

  Python Tkinter: Руководство для начинающих
Оцените статью
( Пока оценок нет )
Поделиться с друзьями
Python для начинающих
Подписаться
Уведомить о
guest
0 Комментарий
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x