pythonのアップデートのきっかけになったので記念に投稿。
現在進行形でアップデートが進んでる言語なんですね。
- 参考にしたサイト
ちなみに、動作確認は Python3.7.3 -> Python3.8.5 です。
python3.7以上はdict
が格納順を保持する
めっちゃ便利!
しかし、pprint
で出力をする場合、pprint
が 出力前にソートをする 仕様のせいでいまいち恩恵が薄い。
test1.py
from pprint import pprint
d = {1: 10, 9: 90, 3: 30, 7: 70, 5: 50}
print(d)
pprint(d)
out1
{1: 10, 9: 90, 3: 30, 7: 70, 5: 50}
{1: 10, 3: 30, 5: 50, 7: 70, 9: 90}
1個ずつ代入した場合も同じ。
test2.py
from pprint import pprint
d2 = {}
d2[0] = 0
d2[8] = 80
d2[2] = 20
d2[6] = 60
d2[4] = 40
print(d2)
pprint(d2)
out2
{0: 0, 8: 80, 2: 20, 6: 60, 4: 40}
{0: 0, 2: 20, 4: 40, 6: 60, 8: 80}
python3.8以上でpprint
にsort_dicts=False
指定ができる
python3.8から、pprint
にsort_dicts
オプションが追加されたらしい。
デフォルトはsort_dicts=True
になっているので、順序を保持したいならFalse
指定が必要。
test3.py
from pprint import pprint
d = {1: 10, 9: 90, 3: 30, 7: 70, 5: 50}
print(d)
pprint(d, sort_dicts=False)
out3
{1: 10, 9: 90, 3: 30, 7: 70, 5: 50}
{1: 10, 9: 90, 3: 30, 7: 70, 5: 50}