Trên thực tế pprint dường như sắp xếp các phím cho bạn dưới 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}
Nhưng không phải lúc nào dưới 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}
>>>
Đọc mã nguồn của pprint.py (2.5) nó sắp xếp từ điển bằng cách sử dụng
items = object.items()
items.sort()
cho nhiều dòng hoặc đơn này cho một dòng
for k, v in sorted(object.items()):
trước khi nó cố in bất kỳ thứ gì, vì vậy nếu từ điển của bạn sắp xếp chính xác như vậy thì nó sẽ được in chính xác. Trong 2.4, thứ hai được sắp xếp() bị thiếu (không tồn tại sau đó) để các đối tượng được in trên một dòng sẽ không được sắp xếp.
Vì vậy, câu trả lời dường như được sử dụng python2.5, mặc dù điều này không hoàn toàn giải thích đầu ra của bạn trong câu hỏi.
Tắt dấu trang đã sắp xếp theo khóa. Nên kiểm tra kỹ hơn. –