pprint() でリストや辞書を整形して出力するテクニック
小ネタですが、pprint() でリストや辞書を整形して出力することができます。
まずは表示がややこしい辞書型のデータを作成します。
# 辞書型のデータの作成 dic = { 'C134':{"price":30,"sales":"1000","profit":200 ,"alist":[110,20,30 ,50]}, 'C623':{"price":80,"sales":"100" ,"profit":6 ,"alist":[100,10,30 ,50]}, 'C430':{"price":70,"sales":"5000","profit":1000,"alist":[160,11,120,6]}, 'C115':{"price":10,"sales":"2400","profit":40 ,"alist":[80 , 1,10 ,6]} }
まずは、データ名をそのまま打ち込んで出力したパターン。
dic
これはこれでキレイに表示されていますが、この後にコードを入力すると、データの中身は表示されません。
また、インデントが若干見づらいところがあります。
次に print() を使った場合。
print(dic)
ぎっしり表示されてしまうため、かなり見づらいですね。
最後に pprint() を使う場合。
import pprint() する必要があります。
import pprint
pprint.pprint(dic)
インデントもキレイにされ、かなり見やすく表示されます。
難点を言うと、昇順で並び変えられてしまっているところですね・・・。
パラメーターが増えてちょっとだけ手間ですが、バージョン 3.8 以降は、sort_dicts = False を追加することでソートせずに出力することが可能です。
pprint.pprint(dic, sort_dicts = False)
以上になります、最後までお読みいただきありがとうございました。
(参考) pprint() の詳細 note.nkmk.me
複雑なdict型を拝借したサイト qiita.com
pprint() のドキュメント docs.python.org
ブログ内のコード github.com 20200419_pprint.ipynb