Skip to main content
 首页 » 编程设计

python之为什么 pprint 模块对 dict 键的排序与 print 不同

2025年05月04日26mate10pro

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 的特制字符串转换之间的差异。