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

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

от sherwood_littel , в категории: Python , 3 года назад

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

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

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

от NicolasSsh , 3 года назад

@sherwood_littel  Вы можете использовать метод .sorted() для сортировки словаря по значениям.


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
dictionary = {
    20 : "Apple",
    15 : "Banana",
    17 : "BlackBerry",
    14 : "Kiwi"
}

sorted_dict = sorted(dictionary.items())

filtred_dict = dict()

for value in sorted_dict:
    filtred_dict[value[0]] = value[1]

print(filtred_dict)

# Вывод : {14: 'Kiwi', 15: 'Banana', 17: 'BlackBerry', 20: 'Apple'}

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

от brenna , 2 года назад

@sherwood_littel 

В Python можно использовать функцию sorted() для сортировки словаря по ключу. Например:

1
2
3
my_dict = {3: "Three", 2: "Two", 1: "One"}
sorted_dict = dict(sorted(my_dict.items()))
print(sorted_dict)


В данном примере словарь my_dict будет отсортирован по ключам и результат будет записан в новый словарь sorted_dict.


Если вам нужно отсортировать словарь в обратном порядке, вы можете использовать аргумент key и значение reverse=True:

1
sorted_dict = dict(sorted(my_dict.items(), key=lambda item: item[0], reverse=True))


Для словарей python3.6+ так же есть метод dict.items() с опцией key

1
sorted_dict = dict(my_dict.items(), key=lambda item: item[0], reverse=True)


Для python3.6+ существует так же возможность использовать collections.OrderedDict и сортировать словарь по ключам.

1
2
from collections import OrderedDict
sorted_dict = OrderedDict(sorted(my_dict.items()))


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