Python中pprint与print的区别

本文对比了Python中print()和pprint()函数的使用,详细解释了两者在输出复杂数据结构时的区别。print()适用于简单数据打印,而pprint()则能更清晰地展示复杂数据结构,尤其在处理长数据时,其分行打印的方式更便于阅读。

print()和pprint()都是python的打印模块,功能基本一样,唯一的区别就是pprint()模块打印出来的数据结构更加完整,每行为一个数据结构,更加方便阅读打印输出结果。特别是对于特别长的数据打印,print()输出结果都在一行,不方便查看,而pprint()采用分行打印输出,所以对于数据结构比较复杂、数据长度较长的数据,适合采用pprint()打印方式。当然,一般情况多数采用print()。

以下为代码示例:
测试print

data = ("test", [1, 2, 3,'test', 4, 5], "This is a string!",
        {'age':23, 'gender':'F'}) 
print(data) 

输出:

('test', [1, 2, 3, 'test', 4, 5], 'This is a string!', {'gender': 'F', 'age': 23})

测试pprint

import pprint 
data = ("test", [1, 2, 3,'test', 4, 5], "This is a string!",
        {'age':23, 'gender':'F'}) 
pprint.pprint(data)

输出:

('test',
 [1, 2, 3, 'test', 4, 5],
 'This is a string!',
 {'age': 23, 'gender': 'F'})

写在后面
此篇为转载博客,原文:https://blog.youkuaiyun.com/qq_24185239/article/details/80977556

### Python 中 `print` `pprint` 的区别Python 中,`print` 是一个用于输出数据到标准输出流(通常是控制台)的内置函数[^1]。它适用于简单的打印操作,能够快速显示变量的内容或其他信息。 另一方面,`pprint` 并不是一个内置函数,而是来自 `pprint` 模块的一部分。该模块提供了更高级的数据结构美化功能,特别适合处理嵌套较深或复杂的对象,比如字典、列表等。通过使用 `pprint.pprint()` 方法,可以更加清晰地展示复杂数据结构的层次关系[^2]。 以下是两者的主要差异: #### 输出格式 - **`print`**: 它会按照默认的方式输出内容,对于简单类型的变量来说已经足够。但对于深层嵌套或者较大的数据结构,其可读性较差。 - **`pprint`**: 提供了更好的格式化选项,默认情况下会对齐字段并分行显示,使得阅读大型数据集变得更容易。 #### 性能考虑 由于 `pprint` 追求更高的可读性美观度,在某些场景下可能会牺牲一定的效率。如果只是需要基本的日志记录或是调试信息,则可以直接采用速度更快的 `print` 函数;而当面对较为庞大的数据集合时,推荐选用 `pprint` 来增强可视效果。 下面给出一段对比两者的代码实例: ```python import pprint data = {'key': 'value', 'nested_list': [[i for i in range(5)] for _ in range(3)], 'another_key': None} # 使用 print 打印 print(data) # 使用 pprint 打印 pp = pprint.PrettyPrinter(indent=4) pp.pprint(data) ``` 运行以上脚本后可以看到,虽然两种方式都能正确反映原始数据的样子,但是后者显然让整个结果看起来更有条理也便于理解。 ### 结论 综上所述,尽管二者都可用于向终端发送消息的任务之中,但在实际开发过程中应依据具体需求来决定究竟选取哪一种工具更为合适——追求简洁高效的话可以选择前者即常规意义上的 “printf-style” 格式的实现形式也就是我们的老朋友 —— `print`; 如果希望获得经过精心排列组合后的漂亮外观则不妨试试看专门为此设计出来的解决方案吧那就是我们今天介绍的新角色啦 —— `pprint`.
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值