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}
pprint 的文档提到了这一点,但没有说明原因。为什么会出现差异?
请您参考如下方法:
pprint 代表“pretty print”,也有“赏心悦目,易读”之意。对 dict 键进行排序正好遵循该目标,pprint 不应该主要是快速的(对键进行排序会增加惩罚),但是,错误,漂亮。 :)
print 另一方面,“只是打印”,越快越好。实际上,这里的差异是 dict 的 __str__ 和 pprint 的特制字符串转换之间的差异。
