Python3内置模块pprint让打印比print更美观详解


Posted in Python onJune 02, 2019

概述

在我们使用内置打印函数print时,打印出的Python数据结构对象总是一行的输出的方式,这样对数据结构较复杂或数据较多的对象的显示并不美观,这时我们可以利用pprint输出美化数据结构对象。

pprint方法概览

美化输出

我们可以利用pprint中的PrettyPrinter控制输出的打印时的缩进,行宽、甚至打印深度等,定义类如下
class pprint.PrettyPrinter(indent = 1,width = 80,depth = None,stream = None,*,compact = False )

  • indent 缩进
  • width 宽度
  • depth 打印深度
  • stream 指输出流对象,stream = None输出流对象默认是sys.stdout
  • compact 如果compact为false(默认值),则长序列中的每个项目将在单独的行上进行格式化。如果compact为true,则将在每个输出行上格式化适合宽度的项目。
import pprint

L = [str(i)*20 for i in range(10)]
pp = pprint.PrettyPrinter(indent=4)
pp.pprint(L)
print(L)

示例结果:

[   '00000000000000000000',
    '11111111111111111111',
    '22222222222222222222',
    '33333333333333333333',
    '44444444444444444444',
    '55555555555555555555',
    '66666666666666666666',
    '77777777777777777777',
    '88888888888888888888',
    '99999999999999999999']
['00000000000000000000', '11111111111111111111', '22222222222222222222', '33333333333333333333', '44444444444444444444', '55555555555555555555', '66666666666666666666', '77777777777777777777', '88888888888888888888', '99999999999999999999']

对象字符串

我们也可以将目标对象的格式化表示形式返回为字符串。 indent, width,depth和compact将PrettyPrinter 作为格式化参数传递给构造函数,定义类如下

L = [str(i)*20 for i in range(10)]
pp = pprint.pformat(L, indent=4)
print(pp)
print(L)

示例结果:

[   '00000000000000000000',
    '11111111111111111111',
    '22222222222222222222',
    '33333333333333333333',
    '44444444444444444444',
    '55555555555555555555',
    '66666666666666666666',
    '77777777777777777777',
    '88888888888888888888',
    '99999999999999999999']
['00000000000000000000', '11111111111111111111', '22222222222222222222', '33333333333333333333', '44444444444444444444', '55555555555555555555', '66666666666666666666', '77777777777777777777', '88888888888888888888', '99999999999999999999']

格式化打印

输出格式的对象字符串到指定的输出流,最后以换行符结束,定义类如下

import pprint

L = [str(i)*20 for i in range(10)]
pprint.pprint(L, indent=4)
print(L)

示例结果:

[   '00000000000000000000',
    '11111111111111111111',
    '22222222222222222222',
    '33333333333333333333',
    '44444444444444444444',
    '55555555555555555555',
    '66666666666666666666',
    '77777777777777777777',
    '88888888888888888888',
    '99999999999999999999']
['00000000000000000000', '11111111111111111111', '22222222222222222222', '33333333333333333333', '44444444444444444444', '55555555555555555555', '66666666666666666666', '77777777777777777777', '88888888888888888888', '99999999999999999999']

可读性

判断对象object的字符串对象是否可读,True可读,反之则反。

import pprint

L = [str(i)*20 for i in range(10)]
B = pprint.isreadable(L)
print(B)

示例结果:

True

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
使用Python抓取模板之家的CSS模板
Mar 16 Python
python中enumerate函数遍历元素用法分析
Mar 11 Python
Python实现的拟合二元一次函数功能示例【基于scipy模块】
May 15 Python
tensorflow 打印内存中的变量方法
Jul 30 Python
Pandas过滤dataframe中包含特定字符串的数据方法
Nov 07 Python
pandas修改DataFrame列名的实现方法
Feb 22 Python
python3+PyQt5 创建多线程网络应用-TCP客户端和TCP服务器实例
Jun 17 Python
Python整数与Numpy数据溢出问题解决
Sep 11 Python
感知器基础原理及python实现过程详解
Sep 30 Python
Pytorch之finetune使用详解
Jan 18 Python
python excel多行合并的方法
Dec 09 Python
利用python进行数据加载
Jun 20 Python
python实现感知机线性分类模型示例代码
Jun 02 #Python
python调用摄像头拍摄数据集
Jun 01 #Python
Python OpenCV实现视频分帧
Jun 01 #Python
python的set处理二维数组转一维数组的方法示例
May 31 #Python
python整合ffmpeg实现视频文件的批量转换
May 31 #Python
python自动发邮件总结及实例说明【推荐】
May 31 #Python
python实现视频分帧效果
May 31 #Python
You might like
解析linux下安装memcacheq(mcq)全过程笔记
2013/06/27 PHP
CI框架给视图添加动态数据
2014/12/01 PHP
php去除头尾空格的2种方法
2015/03/16 PHP
PHP获取访问设备信息的方法示例
2019/02/20 PHP
Yii框架小部件(Widgets)用法实例详解
2020/05/15 PHP
php + ajax 实现的写入数据库操作简单示例
2020/05/16 PHP
Gambit vs CL BO3 第二场 2.13
2021/03/10 DOTA
jQuery仿Excel表格编辑功能的实现代码
2013/05/01 Javascript
Jquery 类网页微信二维码图块滚动效果具体实现
2013/10/14 Javascript
layer插件select选中默认值的方法
2018/08/14 Javascript
解决vue热替换失效的根本原因
2018/09/19 Javascript
[02:47]DOTA2英雄基础教程 野性怒吼兽王
2013/12/05 DOTA
[06:04]DOTA2英雄梦之声Vol19卓尔游侠
2014/06/20 DOTA
[01:14]辉夜杯战队访谈宣传片—NEWBEE.Y
2015/12/26 DOTA
Python中的二叉树查找算法模块使用指南
2014/07/04 Python
Python标准库之sqlite3使用实例
2014/11/25 Python
python简单实现计算过期时间的方法
2015/06/09 Python
对于Python中RawString的理解介绍
2016/07/07 Python
python实现逻辑回归的方法示例
2017/05/02 Python
python利用requests库模拟post请求时json的使用教程
2018/12/07 Python
一篇文章了解Python中常见的序列化操作
2019/06/20 Python
纯CSS实现颜色渐变效果(包含环形渐变、线性渐变、彩虹效果等)
2014/05/07 HTML / CSS
html5调用摄像头功能的实现代码
2018/05/07 HTML / CSS
一波HTML5 Canvas基础绘图实例代码集合
2016/02/28 HTML / CSS
Html5实现文件异步上传功能
2017/05/19 HTML / CSS
Currentbody美国/加拿大:美容仪专家
2020/03/09 全球购物
Currentbody法国:健康与美容高科技产品
2020/08/16 全球购物
华为python面试题
2016/05/03 面试题
法院先进个人事迹材料
2014/05/04 职场文书
运动会的口号
2014/06/09 职场文书
2015年党员创先争优承诺书
2015/01/22 职场文书
高校教师个人总结
2015/02/10 职场文书
只需要100行Python代码就可以实现的贪吃蛇小游戏
2021/05/27 Python
Flask使用SQLAlchemy实现持久化数据
2021/07/16 Python
Python内置类型集合set和frozenset的使用详解
2022/04/26 Python
Win11 Build 22000.829更新补丁KB5015882发布(附更新修复内容汇总)
2022/07/15 数码科技