実際、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}
ただし、Python2.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では、2番目のsorted()が欠落しているため(当時は存在していませんでした)、1行に出力されたオブジェクトはソートされません。
したがって、答えはpython2.5を使用しているように見えますが、これは質問の出力を完全には説明していません。
Python3アップデート
ソートされたキーによるプリティプリント(ラムダx:x [0]):
for key, value in sorted(dict_example.items(), key=lambda x: x[0]):
print("{} : {}".format(key, value))
ソートされた値によるプリティプリント(ラムダx:x [1]):
for key, value in sorted(dict_example.items(), key=lambda x: x[1]):
print("{} : {}".format(key, value))