pprint按字母顺序排序键盘,print按默认顺序对它们进行排序.
from pprint import pprint
d = {'foo': 1, 'bar': 2, 'baz': 3}
pprint(d)
# {'bar': 2, 'baz': 3, 'foo': 1}
print d
# {'baz': 3, 'foo': 1, 'bar': 2}
Run Code Online (Sandbox Code Playgroud)
文件中pprint提到了这一点,但没有说明原因.为什么会出现差异?
pprint代表"漂亮的印刷品",也意味着"令人愉悦,人类容易阅读".对dict键进行排序只是遵循该目标,pprint不应该主要是快速的(排序键增加了惩罚),但是,错误,漂亮.:)
print另一方面,"只是打印",尽可能快.其实这里的差异是之间dict的__str__和pprint的特制的字符串转换.