为什么pprint模块对dict键的排序与打印不同?

Ale*_*x B 1 python

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提到了这一点,但没有说明原因.为什么会出现差异?

pyr*_*ope 6

pprint代表"漂亮的印刷品",也意味着"令人愉悦,人类容易阅读".对dict键进行排序只是遵循该目标,pprint不应该主要是快速的(排序键增加了惩罚),但是,错误,漂亮.:)

print另一方面,"只是打印",尽可能快.其实这里的差异是之间dict__str__pprint的特制的字符串转换.

  • 不,因为它是以这样的方式编写的,其目的在于手头.pprint例如用于调试,并且对键进行排序使得查找您正在寻找的信息变得更加容易. (2认同)