如何配置Python PrettyPrinter实现首尾括号单独分行输出?
解决Python PrettyPrinter实现逐行输出列表的问题
要实现让列表的起始括号、每个元素、结束括号各占单独一行的效果,其实用pprint自带的参数就能搞定,不需要复杂的自定义:
方法:设置极小的width参数
pprint.PrettyPrinter的width参数控制了每行允许的最大字符数,当我们把这个值设得足够小(比如width=1),它就会强制把列表的每个元素都拆到单独一行,同时自动将起始和结束括号也放在独立行。
示例代码:
import pprint my_list = [1, 2, 3] # 设置width=1,indent可以根据需求调整(这里用2和你示例的格式匹配) pp = pprint.PrettyPrinter(indent=2, width=1) pp.pprint(my_list)
输出结果正好符合你的期望:
[ 1, 2, 3 ]
原理说明
pprint的换行逻辑是基于width判断的:当列表的单行表示长度超过width限制时,就会触发“展开式”输出——把每个元素单独分行,括号也各自占一行。设置width=1相当于强制触发这个逻辑,不管列表多短都会展开输出。
如果需要更精细的控制(比如不想对所有类型都强制换行),也可以自定义pprint的格式类,但对于你的需求来说,调整width参数是最简单直接的方案。
内容的提问来源于stack exchange,提问作者Dylanthepiguy
相关产品推荐
相关产品推荐

