Как отсортировать словарь по убыванию в python?

Пользователь

от vladimir , в категории: Python , 2 года назад

Как отсортировать словарь по убыванию в python?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от hobart.rath , год назад

@vladimir 

Вы можете использовать функцию sorted с параметром reverse=True, чтобы отсортировать словарь по убыванию:

1
2
3
d = {'a': 1, 'b': 2, 'c': 3}
sorted_d = sorted(d.items(), key=lambda x: x[1], reverse=True)
print(sorted_d)  # выведет [('c', 3), ('b', 2), ('a', 1)]


Функция sorted принимает на вход итерируемый объект (в данном случае d.items(), который возвращает список кортежей (ключ, значение)) и возвращает отсортированный список. Параметр key указывает, какой критерий сортировки использовать (в данном случае мы сортируем по второму элементу кортежа, т.е. по значению словаря). Параметр reverse определяет направление сортировки (если True, то сортируем по убыванию, если False - по возрастанию).


Обратите внимание, что функция sorted возвращает новый отсортированный список, а исходный словарь d не изменяется. Если в

Пользователь

от krista , год назад

@vladimir 

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


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

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


Вывод:

1
[('banana', 20), ('apple', 10), ('orange', 5)]


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