🔎 Как сортировать словарь по значениям в Python

Как сортировать словарь по значениям в Python?

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


dictionary = {'apple': 3, 'banana': 1, 'cherry': 2}
sorted_dict = dict(sorted(dictionary.items(), key=lambda x: x[1]))
print(sorted_dict)

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

На выходе будет:


{'banana': 1, 'cherry': 2, 'apple': 3}

Детальный ответ

Как сортировать словарь по значениям в Python

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

Метод 1: Использование функции sorted() с параметром key

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


        my_dict = {'apple': 3, 'banana': 2, 'cherry': 5}
        sorted_dict = sorted(my_dict.items(), key=lambda x: x[1])
        print(sorted_dict)
    

Вывод:


        [('banana', 2), ('apple', 3), ('cherry', 5)]
    

Метод 2: Использование функции itemgetter()

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


        from operator import itemgetter
        
        my_dict = {'apple': 3, 'banana': 2, 'cherry': 5}
        sorted_dict = sorted(my_dict.items(), key=itemgetter(1))
        print(sorted_dict)
    

Вывод:


        [('banana', 2), ('apple', 3), ('cherry', 5)]
    

Метод 3: Использование модуля collections

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


        from collections import OrderedDict
        
        my_dict = {'apple': 3, 'banana': 2, 'cherry': 5}
        sorted_dict = OrderedDict(sorted(my_dict.items(), key=lambda x: x[1]))
        
        print(sorted_dict)
    

Вывод:


        OrderedDict([('banana', 2), ('apple', 3), ('cherry', 5)])
    

Метод 4: Использование operator.itemgetter()

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


        import operator
        
        my_dict = {'apple': 3, 'banana': 2, 'cherry': 5}
        sorted_dict = sorted(my_dict.items(), key=operator.itemgetter(1))
        
        print(sorted_dict)
    

Вывод:


        [('banana', 2), ('apple', 3), ('cherry', 5)]
    

Вывод:

Вы только что узнали несколько способов сортировки словаря по значениям в Python. Вы можете использовать функцию sorted() в сочетании с lambda-функциями или функцией itemgetter() из модуля operator. Также вы можете использовать класс OrderedDict из модуля collections, чтобы создать упорядоченный словарь.

Видео по теме

Как отсортировать словарь Python. Сортировка словаря по значениям

Сортировка словаря по значениям #python

Как отсортировать список словарей в python?

Похожие статьи:

Что такое sum python и как его использовать?

Как правильно вводить список в Python с помощью клавиатуры? 📚🖥️

🔎 Как выбрать действительный интерпретатор Python в PyCharm: что делать?

🔎 Как сортировать словарь по значениям в Python

🌍 Как определить местоположение Python? Узнайте с помощью этих простых шагов!

Как начать изучать Python для начинающих: легкий и подробный гид 🐍✨

Как выполнить циклический сдвиг в Python 🔁 | Простое руководство