2016-04-15 7 views
0

Мне нужна помощь при сортировке словаря по ключам в словаре и возвращении его в качестве словаря, а не его возвращении в список.Сортируйте словарь python по ключу и возвращайте словарь вместо списка

Любая помощь будет замечательной!

+1

словарь Python, является неупорядоченным (это хэш-карта), так вам нужно будет использовать другой тип данных, если вы хотите вернуть его в определенном порядке (например, 'collections.OrderedDict'). –

+0

Что вы на самом деле пытаетесь достичь? Зачем вам нужен словарь в определенном порядке, и почему список пар (ключ, значение) не работает для вас? –

+0

Я хотел бы получить следующее: '{1: ['1', '2', '3'], 4: ['5', '6', '7'], 2: [ '10', '11']} ' : ' {1: ['1', '2', '3'], 2: ['10', '11'], 4: [ '5', '6', '7']} ' – kebb

ответ

0

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

Но, если вам действительно нужно взять несортированный Dict и преобразовать его в упорядоченную Dict: (предполагается, что это сортируется по ключу)

from collections import OrderedDict 
my_dict = {1:['1', '2', '3'], 4: ['5', '6', '7'], 2: ['10', '11']} 

new_dict = OrderedDict((k, v) for k, v in sorted(my_dict.items(), key=lambda x: x[0])) 
print(new_dict) 
+0

Это излишне подробный. Просто 'OrderedDict (отсортировано (myd_dict.items()))' делает трюк. (Нет необходимости редактировать, так как идентичный ответ уже существует в дубликате, указанном выше.) –

Смежные вопросы