pprint模块可以漂亮地打印列表和字典。
目录
PrettyPrinter()对象
用于构造示例。stream关键字参数用于设置输出流,流对象上使用的唯一方法是对象的write(),如果没有输入该参数,则表示标准输出。indent表示缩进数,默认为1。depth表示打印深度,如果数据太深,则使用...替代,默认没有深度限制。width控制打印宽度,默认为80个字符。compat默认为False,长序列会被分为多行,True表示尽可能一行输出。sort_dicts默认为True,字典会根据它的关键字排序。
import pprint
stuff = ['spam', 'eggs', 'lumberjack', 'knights', 'ni']
stuff.insert(0, stuff[:])
pp = pprint.PrettyPrinter(indent=4)
pp.pprint(stuff)
'''
[ ['spam', 'eggs', 'lumberjack', 'knights', 'ni'],
'spam',
'eggs',
'lumberjack',
'knights',
'ni']
'''
pp = pprint.PrettyPrinter(width=41, compact=True)
pp.pprint(stuff)
'''
[['spam', 'eggs', 'lumberjack',
'knights', 'ni'],
'spam', 'eggs', 'lumberjack', 'knights',
'ni']
'''
tup = ('spam', ('eggs', ('lumberjack', ('knights', ('ni', ('dead',
('parrot', ('fresh fruit',))))))))
pp = pprint.PrettyPrinter(depth=6)
pp.pprint(tup)
# ('spam', ('eggs', ('lumberjact', (...))))
prettyPrinter对象也存在着一些方法
pformat()方法
返回对象的格式化表示。
pprint()方法
在流中打印对象表示。
isreadable()方法
判断对象是否可读。False表示是递归对象。如果递归的深度大于设置的depth参数,也返回False。
isrecursive()方法
判断对象是否可以递归表示。
format()方法
返回3个值:对象的字符串表示,结果是否可读,结构是否可递归。
pprint()
格式化打印字符串,其中参数与PrettyPrinter对象相同。
pprint.pprint(stuff)
pformat()
以字符串的形式显示格式。其参数与PrettyPrinter相同。
pprint.pformat(stuff)
pp()
打印对象的格式化表示,并换行。sort_dicts默认为False,字典将以默认顺序显示,否则按关键字排序显示。
pprint.pp(stuff)
python 3.8新增内容
isreadable()
确定对象是否是可读的。
pprint.isreadable(stuff)
isrecursive()
确定对象是否需要递归表示。
pprint.isrecursive()
saferepr()
返回字符串,防止递归结构。如果存在递归项,则表示为<Recursion on typename with id=number>。
pprint.saferepr(stuff)
# "[<Recursion on list with id=...>, 'spam', 'eggs', 'lumberjack', 'knights', 'ni']"
更详细信息参考python文档。
Python的pprint模块提供了一种整洁的方式来格式化和打印列表、字典等数据结构。通过PrettyPrinter类,可以自定义输出的缩进、宽度和深度。pformat方法返回格式化的字符串,而pprint方法直接在指定流上打印。isreadable和isrecursive方法用于检查对象是否可读及是否存在递归。此外,saferepr方法在遇到递归时返回特殊表示。这些工具在调试和展示复杂数据结构时非常有用。
1746

被折叠的 条评论
为什么被折叠?



