Python: как отсортировать словарь по ключевым словам

Я пытался сортировать dict по ключу, но никаких шансов. это мой dict:

result={'1':'value1','2':'value2',...}

Я использую Python2.7, и я нашел это

keys = result.keys()
keys.sort()

но это не то, что я ожидал, у меня есть unsorted dict.

Ответы

Ответ 1

Стандартные словари Python по своей сути неупорядочены. Однако вы можете использовать collections.OrderedDict. Он сохраняет порядок вставки, поэтому все, что вам нужно сделать, это добавить пары ключ/значение в желаемом порядке:

In [4]: collections.OrderedDict(sorted(result.items()))
Out[4]: OrderedDict([('1', 'value1'), ('2', 'value2')])

Ответ 2

sorted(result.iteritems(), key=lambda key_value: key_value[0])

Это приведет к сортировке результатов, но словарь останется несортированным. Если вы хотите сохранить порядок словаря, используйте OrderedDict

Собственно, если вы сортируете по ключу, вы можете пропустить часть key=..., потому что итерационные элементы сортируются сначала ключом, а затем значением (что NPE использует в своем ответе)

Ответ 3

Словари Python неупорядочены (для определения)

Вы можете использовать OrderedDict вместо