Tatsächlich scheint pprint die Schlüssel für Sie unter python2.5 zu sortieren
>>> 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}
Aber nicht immer unter 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}
>>>
Beim Lesen des Quellcodes von pprint.py (2.5) wird das Wörterbuch sortiert
items = object.items()
items.sort()
für mehrzeilig oder dies für einzeilig
for k, v in sorted(object.items()):
Bevor es versucht, etwas zu drucken. Wenn Ihr Wörterbuch also richtig sortiert ist, sollte es richtig drucken. In 2.4 fehlt die zweite sortierte () (existierte damals nicht), sodass Objekte, die in einer einzelnen Zeile gedruckt werden, nicht sortiert werden.
Die Antwort scheint also Python2.5 zu sein, obwohl dies Ihre Ausgabe in der Frage nicht ganz erklärt.
Python3-Update
Hübscher Druck nach sortierten Schlüsseln (Lambda x: x [0]):
for key, value in sorted(dict_example.items(), key=lambda x: x[0]):
print("{} : {}".format(key, value))
Hübscher Druck nach sortierten Werten (Lambda x: x [1]):
for key, value in sorted(dict_example.items(), key=lambda x: x[1]):
print("{} : {}".format(key, value))