Словарь представляет собой набор пар «ключ-значение», которые могут хранить различные типы данных. Однако иногда возникает необходимость отсортировать словарь для удобного доступа и управления данными.

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

Важно отметить, что до версии Python 3.7, при вставке новой пары «ключ-значение» в словарь, порядок вставок не учитывался. Начиная с версии 3.7, словари запоминают порядок вставки ключей.

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

Содержание

С использованием метода sorted()

Функция sorted() позволяет отсортировать элементы словаря. В нашем случае нам нужно отсортировать словарь по ключам. Для этого мы будем использовать метод items() вместе с функцией sorted().

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

После сортировки мы можем преобразовать список кортежей обратно в словарь, используя метод dict().

Например, у нас есть словарь, где ключ — это название электронного товара, а значение — количество товара на складе. Вот пример:

electronics = {'Headphones': 25, 'Smartphone': 50, 'Laptop': 10, 'Tablet': 20}

# items() to convert dict to list of tuples, sorted() to sort the tuples
#dict() method to convert back list of tuples to dictionary
sorted_electronics = dict(sorted(electronics.items()))

Словарь сортировки Python с использованием метода sorted()

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

print(sorted_electronics)

С использованием метода sorted()

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

С использованием метода sort()

Метод sort() похож на метод sorted(), но он изменяет исходный словарь. Метод sorted() создаёт копию исходного словаря, которую затем сортирует в определённом порядке. А метод sort() сортирует исходный список.

Например, можно отсортировать словарь «электроника» с помощью метода sort(). Вот как это выглядит в коде:

electronics = {'Headphones': 25, 'Smartphone': 50, 'Laptop': 10, 'Tablet': 20}
# get a list of the dictionary's keys
keys = list(electronics.keys())
# sort the list of keys
keys.sort()

# create a new dictionary with sorted keys
sorted_electronics = {key: electronics[key] for key in keys}

print(sorted_electronics)

с использованием метода sort()

С помощью OrderedDict

OrderedDict — это класс из модулей коллекций Python, который сохраняет порядок добавленных записей. Начиная с Python 3.7, встроенный словарь (dict) также поддерживает порядок вставки элементов. Однако OrderedDict всё ещё полезен благодаря дополнительным функциям, таким как возможность рендеринга.

Давайте рассмотрим пример, как можно отсортировать словарь с помощью OrderedDict, используя следующий код:

# import OrderedDict from collections
from collections import OrderedDict

electronics = {'Headphones': 25, 'Smartphone': 50, 'Laptop': 10, 'Tablet': 20}

# items() to convert dict to list of tuples, sorted() to sort the tuples
#OrderedDict() method to constructs the dictionary
sorted_ordered_dict = OrderedDict(sorted(electronics.items()))

print(sorted_ordered_dict)

с помощью OrderedDict

Добавить комментарий