在python中处理复杂数据结构时,使用pprint模块能更清晰地打印输出。1. 基本使用是将print()替换为pprint.pprint()以实现美观格式;2. 通过width参数控制每行最大字符数;3. 使用indent设置缩进级别,sort_dicts控制字典键的排序;4. pformat()函数可生成格式化字符串以便记录日志或写入文件。
在python中处理复杂数据结构时,普通print()函数输出的格式往往不够清晰,尤其嵌套层级多的时候根本看不明白。这时候就需要用到pprint模块了。
pprint(pretty-print)就是“美观打印”的意思,它能自动换行、缩进,让字典、列表、元组等结构更易读。特别是调试代码或查看大型数据时,用pprint会舒服很多。
1. 基本使用:替换print,直接打印
最简单的用法是把原本的print()换成pprint.pprint():
import pprint data = { 'name': 'Alice', 'age': 30, 'hobbies': ['reading', 'cycling', 'coding'], 'address': {'city': 'Beijing', 'zip': '100000'} } pprint.pprint(data)
输出结果会比普通print更整齐,比如每个层级都会缩进,长列表也会自动换行。
立即学习“Python免费学习笔记(深入)”;
如果你希望一次性导入后直接使用pprint作为函数名,也可以这样写:
from pprint import pprint
这样就能直接调用pprint(data),少打几个字。
2. 控制输出宽度:调整wrap长度
默认情况下,pprint会根据终端宽度自动换行。但有时候你可能想控制一下每行的最大字符数,这时可以用width参数:
pprint.pprint(data, width=40)
上面这个例子中,每行最多显示40个字符,超出就会换行。这对于嵌套比较深的数据结构特别有用,避免一行太长影响阅读。
3. 缩进设置与排序:按字母顺序输出字典
除了换行控制,还可以设置缩进级别和是否排序:
pprint.pprint(data, indent=4, sort_dicts=True)
- indent=4:每一层缩进4个空格。
- sort_dicts=True:字典的键会按照字母顺序排列输出。
这两个参数配合使用,在查看结构复杂的字典时,能让输出更加统一和整洁。
注意:sort_dicts=False可以保留原始插入顺序,适用于你依赖键的顺序的情况。
4. 获取格式化后的字符串而不是直接打印
如果你不想直接打印出来,而是想获取格式化后的字符串,可以使用pformat()函数:
from pprint import pformat formatted_str = pformat(data, width=50) print(formatted_str)
这在你想记录日志或者写入文件时很有用,因为你可以先生成字符串,再决定怎么处理它。
基本上就这些。pprint虽然功能不算炫酷,但在调试和查看复杂数据结构时非常实用,而且不需要额外安装,标准库自带。只要记住几个常用参数,日常使用完全够用了。