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 вместо