pprint python_让我们来谈谈python中的prettyprint和pprint
当你开始学习python编程的时候,你做的第一件事是什么?
相信我们都已经通过“Hello World”程序开始了我们的python之旅。在python中,它可以在一行中完成:
print(“Hello World”)
但是,在使用print()函数打印字典、列表或任何其他复杂数据类型时,您是否遇到过这种痛苦呢?由于不适当的缩进问题,我们经常在python嵌套数据结构的输出中遇到可读性方面的困难。
让我们在这里试试代码:
coordinates= [
{
“name”: “Location 1”,
“gps”: (29.008966, 111.573724)
},
{
“name”: “Location 2”,
“gps”: (40.1632626, 44.2935926)
},
{
“name”: “Location 3”,
“gps”: (29.476705, 121.869339)
}
]
print(coordinates)
以上代码的输出:
[{‘gps’: (29.008966, 111.573724), ‘name’:
‘Location 1’}, {‘gps’: (40.1632626, 44.2935926),
‘name’: ‘Location 2’}, {‘gps’: (29.476705, 121.869339),
‘name’: ‘Location 3’}]
我们可以看到,上面的代码不容易读懂,也不美观。
如果解决这个问题呢?
Python附带pprint模块,可以让打印任意数据结构更具可读性。
pprint是什么?
python中的pprint模块负责以合适的格式打印便于阅读的行块。它使用换行和缩进以明确的方式打印数据。
pprint与print有何不同?
print()是python中的一个简单函数,用于在屏幕上向用户显示指定的消息。但通常,如果我们使用python打印一个字典、列表或任何其他复杂的函数,我们会发现读取打印出来的语句是模棱两可的。它包括内置的对象、文件、套接字、类或实例,这些不能用Python常量表示。
然后,“pprint”模块可以帮助您。
它将对象格式化为可读的格式,每行都有适当的宽度。它带有可调节的宽度限制,以使它更容易为用户。它将所有元素转换为可以用Python常量表示的字符串,并以美观的格式打印它们。pprint函数返回可以在解释器中作为输入运行的输出。而且,通过解析字符串更容易将其转换回该类型。
那么,让我们深入pprint…
在python文件的顶部导入库pprint:
import pprint
现在,我们可以使用.pprint()对象或实例化我们自己的pprint对象PrettyPrinter()。
pprint.pprint(['Radha', 1, 'Hari', 'Simesh', 25, 847])
# Instantiating pprint object
my_pprint= pprint.PrettyPrinter()
my_pprint.pprint(['Radha', 1, 'Hari', 'Simesh', 25, 847])
两个打印函数给出的结果是一致的
['Radha', 1, 'Hari', 'Simesh', 25, 847]
['Radha', 1, 'Hari', 'Simesh', 25, 847]
那么,pprint()和PrettyPrinter()之间的区别是什么?
如果需要调整宽度约束或其他参数,则显式地构造PrettyPrinter对象。
语法:
class pprint.PrettyPrinter(indent=1,width=80,depth=None,
stream=None, *,compact=False,sort_dicts=True)
pprint()方法使用库的默认设置,而在创建PrettyPrinter()对象时,我们可以更改库的默认配置。这就是二者之间的区别。
让我们通过几个例子来理解:
深度参数决定多远一个Python PrettyPrinter递归嵌套结构:
tuple1= ('spam', ('eggs', ('lumberjack', ('knights',
('ni', ('dead',('parrot', ('fresh fruit',))))))))
# Using PrettyPrinter
pp=pprint.PrettyPrinter(depth=6) # default configuration
# of depthbeing none is changed to depth=6
# Now it will print till depth of six brackets
pp.pprint(tuple1)
#Using only pprint() object
pprint.pprint(pprint.pprint(tuple1, depth=6))
pprint.pprint(tuple1)
以上代码的输出:
('spam', ('eggs', ('lumberjack', ('knights', ('ni',
('dead', (...)))))))
('spam', ('eggs', ('lumberjack', ('knights', ('ni',
('dead', (...)))))))
('spam',
('eggs',
('lumberjack', ('knights', ('ni', ('dead',
('parrot', ('fresh fruit',))))))))
你能注意到其中的区别吗?
我们看到,当tuple1打印使用深度= 6,之后六个椭圆打印的时候是没有更多的数据显示而只使用pprint.pprint(),那么所有的数据显示。
设置不存储在.pprint()中,即默认设置保持不变,而在PrettyPrinter()中,设置或更改是存储的。这里存储的是depth = 6。
使用宽度参数,我们可以选择输出将打印多少列。默认宽度是80,也就是80个字符,但是你可以改变它。
现在,让我们看看在几个内置函数中使用pprint()比print()函数的主要区别和好处。
from pprint import pprint # We can directly call the method
# pprint() using it
coordinates= [
{
“name”: “Location 1”,
“gps”: (29.008966, 111.573724)
},
{
“name”: “Location 2”,
“gps”: (40.1632626, 44.2935926)
},
{
“name”: “Location 3”,
“gps”: (29.476705, 121.869339)
}
]
pprint(coordinates)
输出:
[{'gps': (29.008966, 111.573724), 'name': 'Location 1'},
{'gps': (40.1632626, 44.2935926), 'name': 'Location 2'},
{'gps': (29.476705, 121.869339), 'name': 'Location 3'}]
这就是本文中关于python中的pprint的全部内容。
英文原文:
https://medium.com/dev-genius/lets-talk-about-prettyprint-or-pprint-in-python-ddda1fa4cf0b
【责任编辑:赵宁宁 TEL:(010)68476606】
点赞 0
pprint python_让我们来谈谈python中的prettyprint和pprint相关推荐
- 让我们来谈谈python中的prettyprint和pprint
公众号后台回复"图书",了解更多号主新书内容 作者:奶糖猫 来源:喵说Python 01 当你开始学习python编程的时候,你做的第一件事是什么? 相信我们都已经通过" ...
- python中遍历是什么意思_谈谈python中的遍历
标签: 谈谈python中的遍历 python中也有像java中的for...each....在python中是for...in... 其实感觉差不多,不过python的规则更灵活一点, 只要是可以进 ...
- linux 移除python_第16 p,PYthon中的用户交互,Python GUI编程
大家好,我是杨数Tos,这是<从零基础到大神>系列课程的第16篇文章,第二阶段的课程:Python基础知识:PYthon中的用户交互.Python GUI编程实现方式介绍. 学习本课程,建 ...
- python包括几种数据类型_简单谈谈Python中的几种常见的数据类型
计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形.音频.视频.网页等各种各样的数据,不同的数据,需要定义不同的数 ...
- python闭包的应用场景_简单谈谈Python中的闭包
Python中的闭包 前几天又有人留言,关于其中一个闭包和re.sub的使用不太清楚.我在脚本之家搜索了下,发现没有写过闭包相关的东西,所以决定总结一下,完善Python的内容. 1. 闭包的概念 首 ...
- 闭包 python_根据面试题谈谈 Python 闭包
题目: 1.什么是闭包?闭包的定义? 2.手写一个简单的闭包 3.变量作用域规则与 nonlocal 关键字? 4.闭包的应用 答案要点: 1.首先,我们要了解变量作用域,上代码:# 示例一 def ...
- python元类是什么_谈谈Python中元类Metaclass(一):什么是元类
简单的讲,元类创建了Python中所有的对象. 我们说Python是一种动态语言,而动态语言和静态语言最大的不同,就是函数和类不是编译时定义的,而是运行时动态创建的. 比方说我们要定义一个HelloW ...
- fd在python_【后端开发】python中fd()是什么
python中的fd()是turtle模块中的一个方法.fd 方法的实参是像素距离.turtle模块:它可以让你使用海龟图形(turtle graphics)绘制图像 turtle模块其中的函数: 1 ...
- python中函数的可变参数_简单谈谈Python中函数的可变参数
前言 在Python中定义函数,可以用必选参数.默认参数.可变参数和关键字参数,这4种参数都可以一起使用,或者只用其中某些,但是请注意,参数定义的顺序必须是:必选参数.默认参数.可变参数和关键字参数. ...
最新文章
- IDEA2018软件安装教程
- AjaxControlToolkit HoverMenuExtender 控件演示
- 关于类DOTA游戏多样化技能系统的设计思考
- CSDN博文编辑技巧-如何去除上传的图片水印
- [密码学基础][每个信息安全博士生应该知道的52件事][Bristol Cryptography][第21篇]CRT算法如何提高RSA的性能?
- python将16进制字符串转换为整数_Python 16进制与字符串的转换
- 巧用记忆化搜索代替暴力递归(洛谷P1464题题解,Java语言描述)
- STM8 ADC转换模式-------连续模式
- java自定义注解解析
- 学习: 导航器添加修饰符
- 关于text-indent
- myeclipse激活+Aptana安装配置
- Ubuntu中安装ns3
- ⻦哥的LINUX私房菜 学习
- 简单的爬图片代码(python)
- 数字转换为人民币大写
- 上海落户计算机水平毕业研究生,上海落户有多难?985硕士似乎才可能
- 日常小记-pdf扫描版和非扫描版区别
- Graz技术大学计算机图形与视觉小组PEGASUS项目介绍
- ug900-vivado-logic-simulation中文文档 | Xilinx
热门文章
- Atmosic 获评全球100家最具潜力的半导体公司
- js 密码正则表达式(至少8位且必有数字+特殊字符+字母)
- 科学-天文学-天文观测站:TMT(红外天文望远镜)
- 7.0窗口改变大小 axure rp_Axure RP 7.0快捷键 Axure常用快捷键
- IT程序员必须知道的几个Git代码托管平台
- 喷两句KFC“秒杀门”
- manacher java_Manacher算法详解
- 【校内模拟】西行寺无余涅槃(FWT)
- android studio开发app实例_基于Android输入法开发,制作一个微信斗图APP
- 【python实现倒计时】