Встроенный код является корректным способом сделать это. Однако это будет изменяться в ASP.NET 4.0. Мы провели некоторое время, добавляя опцию, которая позволяет полный контроль над идентификаторами, которые являются сгенерированной стороной клиента. Ниже некоторые ресурсы в сети об этой функции.
На самом деле pprint, кажется, сортирует ключи для вас под python2.5
>>> from pprint import pprint
>>> mydict = {'a':1, 'b':2, 'c':3}
>>> pprint(mydict)
{'a': 1, 'b': 2, 'c': 3}
>>> mydict = {'a':1, 'b':2, 'c':3, 'd':4, 'e':5}
>>> pprint(mydict)
{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}
>>> d = dict(zip("kjihgfedcba",range(11)))
>>> pprint(d)
{'a': 10,
'b': 9,
'c': 8,
'd': 7,
'e': 6,
'f': 5,
'g': 4,
'h': 3,
'i': 2,
'j': 1,
'k': 0}
Но не всегда под python 2.4
>>> from pprint import pprint
>>> mydict = {'a':1, 'b':2, 'c':3, 'd':4, 'e':5}
>>> pprint(mydict)
{'a': 1, 'c': 3, 'b': 2, 'e': 5, 'd': 4}
>>> d = dict(zip("kjihgfedcba",range(11)))
>>> pprint(d)
{'a': 10,
'b': 9,
'c': 8,
'd': 7,
'e': 6,
'f': 5,
'g': 4,
'h': 3,
'i': 2,
'j': 1,
'k': 0}
>>>
Читая исходный код pprint.py (2.5), он сортирует словарь, используя
items = object.items()
items.sort()
для многострочного или это для одной строки
for k, v in sorted(object.items()):
, прежде чем он попытается что-либо напечатать, поэтому, если ваш словарь отсортирован правильно, он должен правильно печатать. В версии 2.4 второй sorted () отсутствует (тогда не существовал), поэтому объекты, напечатанные в одной строке, не будут отсортированы.
Таким образом, ответ, похоже, использует python2.5, хотя это не совсем объясняет ваш вывод в вопросе.
Python3 Update
Довольно печатать с помощью отсортированных ключей (лямбда x: x [0]):
for key, value in sorted(dict_example.items(), key=lambda x: x[0]):
print("{} : {}".format(key, value))
Довольно печатать по отсортированным значениям ( лямбда x: x [1]):