@jerrold_langworth Вы можете использовать метод .sorted() для сортировки словаря по алфавиту.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
costs = { "Banana" : 10, "Apple" : 7, "Orange" : 9, "Blueberries" : 14, "Kiwi" : 12 } sorted_costs = dict() sorted_array = sorted(costs.items()) for cost in sorted_array: sorted_costs[cost[0]] = cost[1] print(sorted_costs) # Вывод : {'Apple': 7, 'Banana': 10, 'Blueberries': 14, 'Kiwi': 12, 'Orange': 9} |
@jerrold_langworth
В Python словари не поддерживают упорядоченное представление элементов, поскольку ключи словаря хранятся в хеш-таблице и не имеют явного порядка.
Однако, начиная с версии Python 3.7, порядок элементов в словаре соответствует порядку их добавления, поэтому, если словарь был создан в определенном порядке, вы можете сохранить этот порядок, используя специальный класс collections.OrderedDict
.
Вот пример с использованием OrderedDict
для сортировки словаря по ключам в алфавитном порядке:
1 2 3 4 5 6 |
import collections my_dict = {'b': 2, 'a': 1, 'd': 4, 'c': 3} sorted_dict = collections.OrderedDict(sorted(my_dict.items())) print(sorted_dict) |
Этот код создает словарь my_dict
с неупорядоченными элементами, затем использует sorted()
для сортировки элементов по ключу в алфавитном порядке, и затем использует OrderedDict
для создания упорядоченного словаря sorted_dict
. Результат выполнения кода будет:
1
|
OrderedDict([('a', 1), ('b', 2), ('c', 3), ('d', 4)]) |
Обратите внимание, что элементы в упорядоченном словаре sorted_dict
будут отсортированы по ключам в алфавитном порядке. Если вы хотите сортировать элементы по значению, а не по ключу, вы можете использовать параметр key
функции sorted()
для указания сортировки по значению, а не по ключу.