我的编程空间,编程开发者的网络收藏夹
学习永远不晚

怎么打印Python对象

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

怎么打印Python对象

本篇内容主要讲解“怎么打印Python对象”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么打印Python对象”吧!

pprint 是“pretty printer”的简写,“pretty”的含义是“漂亮的、美观的”,还有表示“相当地”的程度语气,因此它的含义便是:(相当)美观的打印。

这是个相当简单却有用的模块,主要用于打印复杂的数据结构对象,例如多层嵌套的列表、元组和字典等。

先看看 print() 打印的一个例子:

mylist = ["Beautiful is better than ugly.", "Explicit is better than implicit.", "Simple is better than complex.", "Complex is better than complicated."]print(mylist)# 结果如下:['Beautiful is better than ugly.', 'Explicit is better than implicit.', 'Simple is better than complex.', 'Complex is better than complicated.']

这是一个简单的例子,全部打印在一行里。

想象一下,如果对象中的元素是多层嵌套的内容(例如复杂的 Json 数据),或者有超多的元素(例如在列表中存了很多 URL 链接),再打印出来会是怎样?

那肯定是一团糟的,不好阅读!

使用 pprint 模块的 pprint() 替代 print(),可以解决如下痛点:

  • 设置合适的行宽度,作适当的换行

  • 设置打印的缩进、层级,进行格式化打印

  • 判断对象中是否有无限循环,并优化打印内容

简单使用

语法:pprint(object, stream=None, indent=1, width=80, depth=None, *,compact=False)

默认的行宽度参数为 80,当打印的字符(character)小于 80 时,pprint() 基本上等同于内置函数 print(),当字符超出时,它会作美化,进行格式化输出:

import pprint# 打印上例的 mylistpprint.pprint(mylist)# 打印的元素是换行的(因为超出80字符):['Beautiful is better than ugly.', 'Explicit is better than implicit.', 'Simple is better than complex.', 'Complex is better than complicated.']

设置缩进为 4 个空格(默认为1)

pprint.pprint(mylist, indent=4)[ 'Beautiful is better than ugly.', 'Explicit is better than implicit.', 'Simple is better than complex.', 'Complex is better than complicated.']

设置打印的行宽

mydict = {'students': [{'name':'Tom', 'age': 18},{'name':'Jerry', 'age': 19}]}pprint.pprint(mydict)# 未超长:{'students': [{'age': 18, 'name': 'Tom'}, {'age': 19, 'name': 'Jerry'}]}pprint.pprint(mydict, width=20)# 超长1:{'students': [{'age': 18, 'name': 'Tom'}, {'age': 19, 'name': 'Jerry'}]}pprint.pprint(mydict, width=70)# 超长2:{'students': [{'age': 18, 'name': 'Tom'}, {'age': 19, 'name': 'Jerry'}]}

设置打印的层级(默认全打印)

newlist = [1, [2, [3, [4, [5]]]]]pprint.pprint(newlist, depth=3)# 超出的层级会用...表示[1, [2, [3, [...]]]]

优化循环结构的打印

当列表或其它数据结构中出现循环引用时,要完整打印出所有内容是不可能的。

所以 print 作了简化处理,就像上例一样,只打印外层的壳,而不打印内层循环的东西。

这种处理方式是简化了,但没有指出是谁导致了循环,还容易看漏。

pprint() 方法作了改进,遇到无限循环结构时,会表示成<Recursion on typename with id=number> 的格式。

还有个 saferepr() 方法,也是这样优化,而且返回的是个字符串:

newlist = [1, 2]newlist.insert(0, newlist)# 列表元素指向列表自身,造成循环引用# 直接 print 的结果是:[[...], 1, 2]pprint.pprint(newlist)# [<Recursion on list with id=1741283656456>, 1, 2]pprint.saferepr(newlist)# '[<Recursion on list with id=1741283656456>, 1, 2]'

判断是否出现循环结构

有两个方法判断一个对象中是否出现无限循环:

pprint.isrecursive(newlist)# Truepprint.isreadable(newlist)# False

isreadable() 除了能像 isrecursive() 一样判断循环,还能判断该格式化内容是否可被 eval() 重构。

以上就是 pprint 模块的快捷入门介绍,除此之外,还有 pformat() 方法、PrettyPrinter 类,以及某些参数的使用等内容,我觉得没有大用,就不多说了。

最后,还有个小小的点:

用 pprint() 替换 print() 的技巧

在不考虑 print() 函数本身的参数的情况下,可以在引入 pprint 模块后,写上 “print = pprint.pprint”,令 print() 起到改头换面的效果:

import pprintprint = pprint.pprintmylist = ["Beautiful is better than ugly.", "Explicit is better than implicit.", "Simple is better than complex.", "Complex is better than complicated."]print(mylist)# 可对比本文开头的例子['Beautiful is better than ugly.', 'Explicit is better than implicit.', 'Simple is better than complex.', 'Complex is better than complicated.']

到此,相信大家对“怎么打印Python对象”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

怎么打印Python对象

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

怎么打印Python对象

本篇内容主要讲解“怎么打印Python对象”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么打印Python对象”吧!pprint 是“pretty printer”的简写,“pretty”的含
2023-06-02

java怎么打印list中的对象

在Java中,可以使用循环遍历List中的对象,并打印出每个对象的内容。可以通过以下代码实现:List list = new ArrayList();list.add("Apple");list.add("Bana
java怎么打印list中的对象
2024-03-13

怎么优雅地打印一个Java对象

本文小编为大家详细介绍“怎么优雅地打印一个Java对象”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么优雅地打印一个Java对象”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。提问者定义了这样一个类:publi
2023-06-16

[python]打印对齐

一、数值类型(int、float)#  %d、%f是占位符>>> a = 3.1415926>>> print("%d"%a)    #%d只能输出整数,int类3>>> print("%f"%a)  #%f输出浮点数3.141593>>>
2023-01-31

如何打印Proxy对象和ref对象的包

本文小编为大家详细介绍“如何打印Proxy对象和ref对象的包”,内容详细,步骤清晰,细节处理妥当,希望这篇“如何打印Proxy对象和ref对象的包”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。目标我希望新的co
2023-07-04

python 打印对象的所有属性值的方法

如下所示:def prn_obj(obj): print 'n'.join(['%s:%s' % item for item in obj.__dict__.items()]) 以上这篇python 打印对象的所有属性值的方法就是小编分享给
2022-06-04

java直接打印对象的方法是什么

在Java中,可以使用`System.out.println()`方法来直接打印对象。这个方法会自动调用对象的`toString()`方法,将对象的字符串表示打印到控制台上。所以,如果想要打印对象,需要在该对象的类中重写`toString(
2023-10-11

当地图对象被互斥锁锁定时打印地图对象

php小编小新在这里向大家介绍一个关于互斥锁的实用技巧:当地图对象被互斥锁锁定时,如何打印地图对象。互斥锁是一种用于保护共享资源的机制,确保同时只有一个线程可以访问被锁定的资源。在本文中,我们将探讨如何使用互斥锁来保护地图对象,并在对象被锁
当地图对象被互斥锁锁定时打印地图对象
2024-02-10

python怎么打印菱形

要打印菱形,可以使用嵌套循环来实现。以下是一个打印菱形的示例代码:```pythondef print_diamond(n):for i in range(n):print(' ' * (n - i - 1) + '*' * (2 * i
2023-08-31

怎么用python打印月历

这篇文章主要为大家展示了“怎么用python打印月历”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“怎么用python打印月历”这篇文章吧。用python打印月历日历模块具有许多与基于日期的操作有
2023-06-27

python 打印出所有的对象/模块的属性(实例代码)

实例如下:import sysdef print_all(module_):modulelist = dir(module_)length = len(modulelist)for i in range(0,length,1):print
2022-06-04

python怎么打印字符串

本篇内容介绍了“python怎么打印字符串”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在Python中,字符串是最常用的数据类型。引号(或
2023-06-30

python怎么打印当前文件的绝对路径并解决打印为空的问题

这篇文章主要介绍“python怎么打印当前文件的绝对路径并解决打印为空的问题”,在日常操作中,相信很多人在python怎么打印当前文件的绝对路径并解决打印为空的问题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答
2023-07-05

python怎么打印数据类型

要在Python中打印数据类型,可以使用type()函数。您可以将要检查的值作为参数传递给type()函数,它将返回该值的数据类型。以下是一个示例:data = 42print(type(data))这将输出:
python怎么打印数据类型
2024-03-11

Python面向对象怎么创建对象和给对象发消息

这篇文章主要介绍“Python面向对象怎么创建对象和给对象发消息”,在日常操作中,相信很多人在Python面向对象怎么创建对象和给对象发消息问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python面向对象怎
2023-06-01

python怎么打印日志文件

在Python中,可以使用内置的logging模块来打印日志文件。以下是一个简单的示例代码:import logging# 设置日志级别logging.basicConfig(filename='example.log
python怎么打印日志文件
2024-03-12

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录