pprint包的使用介绍

诸神缄默不语-个人CSDN博文目录

pprint是Python标准库中的一个模块,全称为"Pretty Printer"。它提供了一个pprint()函数和一个pformat()函数,用于生成比print()更加美观的输出。这对于打印复杂的数据结构如字典、列表等尤其有用,因为pprint会根据数据结构的嵌套层次自动换行并缩进,使得输出结果更加清晰易读。

1. 主要用法

1.1 pprint()

pprint.pprint()函数可以直接打印出美化后的数据结构。

示例代码:

from pprint import pprint

data = [{'name': 'John', 'age': 45, 'roles': ['Admin', 'User']}, {'name': 'Jane', 'age': 38, 'roles': ['User']}]
pprint(data)

输出:

[{'age': 45, 'name': 'John', 'roles': ['Admin', 'User']},
 {'age': 38, 'name': 'Jane', 'roles': ['User']}]

1.2 pformat()

pprint.pformat()函数则会返回美化后的数据结构的字符串,而不是直接打印出来,这在需要将美化后的字符串用于日志记录或其他目的时非常有用。

示例代码:

from pprint import pformat

data = [
    {"name": "John", "age": 45, "roles": ["Admin", "User"]},
    {"name": "Jane", "age": 38, "roles": ["User"]},
]
formatted_data = pformat(data)
print(formatted_data)

输出:

[{'age': 45, 'name': 'John', 'roles': ['Admin', 'User']},
 {'age': 38, 'name': 'Jane', 'roles': ['User']}]

2. 定制美化输出

pprint还允许用户通过参数定制输出格式,如缩进宽度、输出宽度等。

2.1 定制缩进

通过indent参数可以定制缩进宽度。

示例代码:

from pprint import pprint

data = [
    {"name": "John", "age": 45, "roles": ["Admin", "User"]},
    {"name": "Jane", "age": 38, "roles": ["User"]},
]
pprint(data, indent=4)

输出:

[   {'age': 45, 'name': 'John', 'roles': ['Admin', 'User']},
    {'age': 38, 'name': 'Jane', 'roles': ['User']}]

2.2 定制宽度

通过width参数可以定制输出的宽度,pprint会尽可能在不超过这个宽度的情况下输出。

示例代码:

from pprint import pprint

data = [
    {"name": "John", "age": 45, "roles": ["Admin", "User"]},
    {"name": "Jane", "age": 38, "roles": ["User"]},
]
pprint(data, width=20)

输出:

[{'age': 45,
  'name': 'John',
  'roles': ['Admin',
            'User']},
 {'age': 38,
  'name': 'Jane',
  'roles': ['User']}]

3.3 排序字典键

通过设置sort_dictsFalse,可以保持字典键的原始顺序。

示例代码:

from pprint import pprint

data = {"b": 2, "a": 1, "c": 3}
pprint(data, sort_dicts=False)

输出:

{'b': 2, 'a': 1, 'c': 3}

如果不显式设置这个参数的话就会重排序:

{'a': 1, 'b': 2, 'c': 3}

3. 结论

pprint模块是Python中一个非常有用的工具,尤其是在处理复杂的数据结构时。它通过美化输出,使得数据结构的阅读和理解变得更加容易。通过本文的介绍和示例,希望能帮助你更好地利用pprint模块来优化你的Python代码输出。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

诸神缄默不语

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值