当前位置: 首页 > news >正文

Python美化输出 pprint

正常输出一个字典是这样的

>>> x = {str(i):list(range(i)) for i in range(10)}
>>> print(x)
{'0': [], '1': [0], '2': [0, 1], '3': [0, 1, 2], '4': [0, 1, 2, 3], '5': [0, 1, 2, 3, 4], '6': [0, 1, 2, 3, 4, 5], '7': [0, 1, 2, 3, 4, 5, 6], '8': [0, 1, 2, 3, 4, 5, 6, 7], '9': [0, 1, 2, 3, 4, 5, 6, 7, 8]}

用了pprint之后是这样的

>>> from pprint import pprint
>>> pprint(x)
{'0': [],
 '1': [0],
 '2': [0, 1],
 '3': [0, 1, 2],
 '4': [0, 1, 2, 3],
 '5': [0, 1, 2, 3, 4],
 '6': [0, 1, 2, 3, 4, 5],
 '7': [0, 1, 2, 3, 4, 5, 6],
 '8': [0, 1, 2, 3, 4, 5, 6, 7],
 '9': [0, 1, 2, 3, 4, 5, 6, 7, 8]}

对比之下,可谓一图胜千言。

pprint中常用的参数有

  • compact 序列的格式化方式
  • width 控制宽度
  • depth 递归深度
  • sort_dicts 字典键的排序方法
  • underscore_numbers 整数格式化方法,为True时,整数会用下划线作为千分位的分隔符

其中compact用于调整序列的输出方式,当其为True时,表示将所有元素按一行打印,为False时,表示每个元素自己一行。

width比较容易理解,即列表的最大宽度,如果超过这个宽度,就会将其内部的元素按行打印,和compact=False一样。

递归深度针对的是列表内部的列表,

xLst = [0]
for i in range(5):
    xLst.append(xLst+[])
pprint(xLst, depth=1)
# [0, [...], [...], [...], [...], [...]]
pprint(xLst, depth=3)
# 下面是其输出
[0,
 [0],
 [0, [0]],
 [0, [0], [0, [...]]],
 [0, [0], [0, [...]], [0, [...], [...]]],
 [0, [0], [0, [...]], [0, [...], [...]], [0, [...], [...], [...]]]]

可以看到depth=1时,只打印最外层括号的元素,为3时,打印了三重括号。

sort_dict用于调整字典输出的顺序,当其为True时,打印字典时按照字典的键排序;为False时,按照字典键的插入顺序输出。

相关文章:

  • Java实现十进制与二进制互相转换
  • 改进YOLOv5系列:首发结合最新Extended efficient Layer Aggregation Networks结构,高效的聚合网络设计,提升性能
  • linux:vi和vim的使用
  • 老测试员偷偷告诉你:面试被问当前薪资?千万别瞎说大实话,答错可就亏大了
  • ComposeUI——下拉刷新+上拉加载(简单封装)
  • 【建议背诵】2022下半年软考「集成」100题(10)
  • LeetCode:寻找两个正序数组的中位数----多种解题方式
  • 超实用的JS常用算法详解(推荐)
  • 分布式版本控制系统Git的下载、安装与使用其复制GitHub项目代码的方法
  • 金仓数据库KingbaseES物理备份恢复最佳实践(执行备份)
  • 【CSS】表格、定位_普通流定位与浮动定位、其他css常用属性_05
  • 没有学过C语言可以学Java吗?
  • 网络安全学习路线
  • 指针(四)- 函数指针和回调函数
  • 【职场必备知识】成都购房政策调研
  • [PHP内核探索]PHP中的哈希表
  • 【Amaple教程】5. 插件
  • AngularJS指令开发(1)——参数详解
  • bearychat的java client
  • ES6系列(二)变量的解构赋值
  • Facebook AccountKit 接入的坑点
  • Koa2 之文件上传下载
  • mac修复ab及siege安装
  • php的插入排序,通过双层for循环
  • Python爬虫--- 1.3 BS4库的解析器
  • React Native移动开发实战-3-实现页面间的数据传递
  • Ruby 2.x 源代码分析:扩展 概述
  • 表单中readonly的input等标签,禁止光标进入(focus)的几种方式
  • 第2章 网络文档
  • 聊聊flink的BlobWriter
  • 让你的分享飞起来——极光推出社会化分享组件
  • 物联网链路协议
  • 小李飞刀:SQL题目刷起来!
  • 一些css基础学习笔记
  • 深度学习之轻量级神经网络在TWS蓝牙音频处理器上的部署
  • ‌分布式计算技术与复杂算法优化:‌现代数据处理的基石
  • #[Composer学习笔记]Part1:安装composer并通过composer创建一个项目
  • #gStore-weekly | gStore最新版本1.0之三角形计数函数的使用
  • #中的引用型是什么意识_Java中四种引用有什么区别以及应用场景
  • (0)Nginx 功能特性
  • (Oracle)SQL优化技巧(一):分页查询
  • (SERIES10)DM逻辑备份还原
  • (一)、软硬件全开源智能手表,与手机互联,标配多表盘,功能丰富(ZSWatch-Zephyr)
  • (一)Dubbo快速入门、介绍、使用
  • (一)Thymeleaf用法——Thymeleaf简介
  • (原创) cocos2dx使用Curl连接网络(客户端)
  • .NET Core6.0 MVC+layui+SqlSugar 简单增删改查
  • .vue文件怎么使用_vue调试工具vue-devtools的安装
  • [ Linux Audio 篇 ] 音频开发入门基础知识
  • []Telit UC864E 拨号上网
  • [bbk5179]第66集 第7章 - 数据库的维护 03
  • [BZOJ] 2044: 三维导弹拦截
  • [CodeForces-759D]Bacterial Melee
  • [FreeRTOS 基础知识] 栈
  • [hive] sql中distinct的用法和注意事项