pprint
dictsキーをアルファベット順にソートすると、print
がデフォルトの順序でソートされます。なぜpprintモジュールはdictキーを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
の文書はこれを言及し、なぜ言うことはありません。なぜ矛盾?
「printはデフォルト順序で並べ替えます」とは言いません。要点はprint *はそれらをソートしないのに対し、 'pprint'は明示的にそれらをソートするのに対し、 'print'は、dictの反復動作によってキーが返される順序を単に使用します。これは、定義されていない順序であり、実装やマシンによって異なる場合があります。 –