Python美化输出 pprint
正常输出一个字典是这样的
>>> x = {str(i):list(range(i)) for i in range(10)}
>>> print(x)
{'0': [], '1': [0], '2': [0, 1], '3': [0, 1, 2], '4': [0, 1, 2, 3], '5': [0, 1, 2, 3, 4], '6': [0, 1, 2, 3, 4, 5], '7': [0, 1, 2, 3, 4, 5, 6], '8': [0, 1, 2, 3, 4, 5, 6, 7], '9': [0, 1, 2, 3, 4, 5, 6, 7, 8]}
用了pprint
之后是这样的
>>> from pprint import pprint
>>> pprint(x)
{'0': [],
'1': [0],
'2': [0, 1],
'3': [0, 1, 2],
'4': [0, 1, 2, 3],
'5': [0, 1, 2, 3, 4],
'6': [0, 1, 2, 3, 4, 5],
'7': [0, 1, 2, 3, 4, 5, 6],
'8': [0, 1, 2, 3, 4, 5, 6, 7],
'9': [0, 1, 2, 3, 4, 5, 6, 7, 8]}
对比之下,可谓一图胜千言。
pprint
中常用的参数有
- compact 序列的格式化方式
- width 控制宽度
- depth 递归深度
- sort_dicts 字典键的排序方法
- underscore_numbers 整数格式化方法,为
True
时,整数会用下划线作为千分位的分隔符
其中compact
用于调整序列的输出方式,当其为True
时,表示将所有元素按一行打印,为False
时,表示每个元素自己一行。
width
比较容易理解,即列表的最大宽度,如果超过这个宽度,就会将其内部的元素按行打印,和compact=False
一样。
递归深度针对的是列表内部的列表,
xLst = [0]
for i in range(5):
xLst.append(xLst+[])
pprint(xLst, depth=1)
# [0, [...], [...], [...], [...], [...]]
pprint(xLst, depth=3)
# 下面是其输出
[0,
[0],
[0, [0]],
[0, [0], [0, [...]]],
[0, [0], [0, [...]], [0, [...], [...]]],
[0, [0], [0, [...]], [0, [...], [...]], [0, [...], [...], [...]]]]
可以看到depth=1
时,只打印最外层括号的元素,为3时,打印了三重括号。
sort_dict
用于调整字典输出的顺序,当其为True
时,打印字典时按照字典的键排序;为False
时,按照字典键的插入顺序输出。