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

Как легко сортировать словарь по ключам в Python: ТОП методы и примеры

Здесь мы с вами подробно рассмотрим сортировку словаря по ключу.

Сортировка словаря по ключу с использованием функции sorted()

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

my_dict = {"banana": 3, "apple": 4, "pear": 1, "orange": 2}
sorted_dict = dict(sorted(my_dict.items()))
print(sorted_dict)

#{'apple': 4, 'banana': 3, 'orange': 2, 'pear': 1}

В приведенном выше примере словарь my_dict сортируется по ключу с помощью функции sorted(). Затем с помощью функции dict() сортированный список преобразуется обратно в словарь.

Сортировка словаря по ключу в обратном порядке

Если нужно отсортировать словарь по ключу в обратном порядке, можно использовать аргумент reverse=True в функции sorted().

my_dict = {"banana": 3, "apple": 4, "pear": 1, "orange": 2}
sorted_dict = dict(sorted(my_dict.items(), reverse=True))
print(sorted_dict)

#{'pear': 1, 'orange': 2, 'banana': 3, 'apple': 4}

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

Иногда может потребоваться сортировка словаря не по алфавиту, а, например, по длине ключей. В таких случаях можно использовать функцию lambda.

my_dict = {"banana": 3, "apple": 4, "pear": 1, "orange": 2}
sorted_dict = dict(sorted(my_dict.items(), key=lambda item: len(item[0])))
print(sorted_dict)

#{'pear': 1, 'apple': 4, 'banana': 3, 'orange': 2}

Сортировка словаря по ключу, используя другой порядок сортировки

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

my_dict = {"banana": 3, "apple": 4, "pear": 1, "orange": 2}
# Здесь мы определяем функцию сортировки, которая меняет порядок символов в ключах перед сравнением
sorted_dict = dict(sorted(my_dict.items(), key=lambda item: item[0][::-1]))
print(sorted_dict)

#{'banana': 3, 'apple': 4, 'orange': 2, 'pear': 1}

Заключение

Сортировка словарей в Python — это мощный и гибкий инструмент. Благодаря функции sorted() и ее способности работать с функциями lambda, вы можете гибко управлять тем, как именно будет происходить сортировка. Независимо от того, требуется ли вам простая сортировка по ключам в алфавитном порядке или более сложная сортировка с использованием пользовательской функции сортировки, Python предлагает все необходимые инструменты для этого.

Содержание: