python - python中pprint的“宽度”是什么意思?
问题描述
我不明白“宽度”是什么意思。
例如下面的代码,为什么列表是在“width=29”处划分的?
代码:
import pprint
list = [0,1,2,3,4,5,6,7,8,9]
pprint.pprint(list, width=30)
pprint.pprint(list, width=29)
结果:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[0,
1,
2,
3,
4,
5,
6,
7,
8,
9]
解决方案
根据官方文档
使用 width 参数限制所需的输出宽度;默认为 80 个字符。如果无法在限制宽度内格式化结构,将尽最大努力。如果 compact [parameter] 为 false(默认值),则长序列的每个项目将在单独的行上格式化。
因此,如果一个数据结构(在您的情况下是 10 个整数的列表)不适合 29 个字符,则默认的“尽力而为”策略将其保持在 29 个字符宽度内,会将超大列表的每个元素放在单独的行上。
默认策略对我来说似乎已经足够了,但是如果您想在每行中压缩更多元素以实现更紧凑的重新定向,请 set compact=True
。
同时 30 个字符的宽度足以在同一行中漂亮地打印整个列表。