tknhs’s blog

ー ごちゃごちゃしてるブログ ー

Python Tips: Prettyprint

| Comments

python

オブジェクトを整形して見やすい形で出力してくれる標準ライブラリ pprint

1
import pprint

短いリストにこれを使用した場合は print したときと同じように出力される.

1
2
3
4
5
6
import pprint
words = "Lorem ipsum dolor sit amet".split()
pprint.pprint(words)

# 出力
['Lorem', 'ipsum', 'dolor', 'sit', 'amet']

長いリストの場合はちゃんと整形される.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import pprint
words = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.".split()
pprint.pprint(words)

# 出力
['Lorem',
 'ipsum',
 'dolor',
 'sit',
 'amet,',
 'consectetur',
 'adipisicing',
 'elit,',
 'sed',
 'do',
 'eiusmod',
 'tempor',
 'incididunt',
 'ut',
 'labore',
 'et',
 'dolore',
 'magna',
 'aliqua.']

なんかそれっぽい二次元配列とかも非常に見やすくなる.

1
2
3
4
5
6
7
8
9
10
import pprint
array = [[0, 0, 0, 0, 0, 0],[0, 1, 1, 1, 1, 1], [0, 1, 0, 1, 0, 1], [0, 1, 0, 1, 1, 1], [0, 0, 0, 0, 0, 0]]
pprint.pprint(array)

# 出力
[[0, 0, 0, 0, 0, 0],
 [0, 1, 1, 1, 1, 1],
 [0, 1, 0, 1, 0, 1],
 [0, 1, 0, 1, 1, 1],
 [0, 0, 0, 0, 0, 0]]

リストだけじゃなくて辞書もいける.

1
2
3
4
5
6
7
8
9
10
11
import pprint
langs = {"c": "C", "j": "Java", "o": "Objectiv-C", "p": "PHP", "r": "Ruby", "a": "ActionScript"}
pprint.pprint(langs)

# 出力
{'a': 'ActionScript',
 'c': 'C',
 'j': 'Java',
 'o': 'Objectiv-C',
 'p': 'PHP',
 'r': 'Ruby'}

pprint に indent, width, depth など引数を与えることができるが詳しくは公式ドキュメントで.

ドキュメント

Comments