下面说说python中的prettyprint和pprint。在python中,它可以在一行中完成:print("HelloWorld")但是您在使用print()函数打印字典、列表或任何其他复杂数据类型时是否经历过这种痛苦?由于不适当的缩进问题,我们经常难以理解Python嵌套数据结构的输出的可读性。让我们试试这里的代码:coordinates=[{"name":"Location1","gps":(29.008966,111.573724)},{"name":"Location2","gps":(40.1632626,44.2935926)},{"name":"Location3","gps":(29.476705,121.869339)}]print(coordinates)上面代码的输出:[{'gps':(29.008966,111.573724),'name':'Location1'},{'gps':(40.1632626,44.2935926),'name':'Location2'},{'gps':(29.476705,121.869339),'name':'Location3'}]我们可以看到上面的代码并没有易于阅读且不美观。如何解决这个问题?Python自带pprint模块,使得打印任意数据结构更具可读性。什么是打印?python中的pprint模块负责以合适的格式打印人类可读的行块。它使用换行符和缩进以明确的方式打印数据。pprint与print有何不同?print()是python中的一个简单函数,用于在屏幕上向用户显示指定的消息。但通常情况下,如果我们使用python打印字典、列表或任何其他复杂函数,我们会发现读取打印的语句是有歧义的。它包括内置对象、文件、套接字、类或实例,这些不能用Python常量表示。然后,“pprint”模块可以帮助你。它将对象格式化为可读格式,每行具有适当的宽度。它带有可调节的宽度限制,使用户更容易使用。它将所有元素转换为可以用Python常量表示的字符串,并以一种漂亮的格式打印它们。pprint函数返回可以在解释器中作为输入运行的输出。此外,通过解析字符串将其转换回该类型会更容易。那么,让我们深入研究pprint...在python文件的顶部导入库pprint:importpprint现在,我们可以使用.pprint()对象或实例化我们自己的pprint对象PrettyPrinter()。pprint.pprint(['Radha',1,'Hari','Simesh',25,847])#Instantiatingpprintobjectmy_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对象。语法:classpprint.PrettyPrinter(indent=1,width=80,depth=None,stream=None,*,compact=False,sort_dicts=True)pprint()方法使用库的默认设置,创建PrettyPrinter时()object,我们可以更改库的默认配置。这就是两者之间的区别。让我们通过几个例子来理解:深度参数决定了PythonPrettyPrinter递归嵌套结构的深度:tuple1=('spam',('eggs',('lumberjack',('knights',('ni',('dead',('parrot',('freshfruit',)))))))#UsingPrettyPrinterpp=pprint.PrettyPrinter(depth=6)#defaultconfiguration#ofdepthbeingnoneischangedtodepth=6#Nowitwillprinttilldepthofsixbracketspp.pprint(tuple1)#Usingonlypprint()objectpprint.pprint(pprint.pprint(tuple1,depth=6))pprint.pprint(tuple1)上面代码的输出:('spam',('eggs',('lumberjack',('knights',('ni',('死',(...)))))))('垃圾邮件',('鸡蛋',('伐木工人',('骑士',('ni',('死',(...)))))))('垃圾邮件',('鸡蛋',('伐木工人',('骑士',('ni',('死',('鹦鹉',('新鲜水果',))))))))你能注意到区别吗?我们看到,当使用depth=6打印tuple1时,打印了六个椭圆,没有更多数据可显示,只需使用pprint.pprint(),然后显示所有数据。设置不存储在.pprint()中,即默认设置保持不变,而在PrettyPrinter()中存储设置或更改。这里存储了depth=6。使用宽度参数,我们可以选择输出将打印多少列。默认宽度是80,也就是80个字符,但是你可以改变它。现在,让我们看看在几个内置函数中使用pprint()而不是print()函数的主要区别和好处。frompprintimportpprint#Wecandirectlycalallthemethod#pprint()usingitcoordinates=[{"name":"Location1","gps":(29.008966,111.573724)},{"name":"Location2","gps":(40.1632626,44.2935926)},{"name":"Location3","gps":(29.476705,121.869339)}]pprint(coordinates)输出:[{'gps':(29.008966,111.573724),'name':'Location1'},{'gps':(40.1632626,44.2935926),'name':'Location2'},{'gps':(29.476705,121.869339),'name':'Location3'}]这就是这篇关于python中pprint的文章的全部内容。英文原文:https://medium.com/dev-genius/lets-talk-about-prettyprint-or-pprint-in-python-ddda1fa4cf0b
