• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >python > Python构造自定义方法来美化字典结构输出的示例

Python构造自定义方法来美化字典结构输出的示例

作者: 字体:[增加 减小] 来源:互联网

通过本文主要向大家介绍了python如何构造字典,python 构造方法,python构造矩阵,python构造函数,python中的构造函数等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

示例:
d = { "root": { "folder2": { "item2": None, "item1": None }, "folder1": { "subfolder1": { "item2": None, "item1": None }, "subfolder2": { "item3": None } } } }
</div>

美观输出是:

2016616162825558.jpg (440×72)

观察一下特点:
1.同一level的key左对齐,即indent相同。
2.在,号后换行。
3.如果value是字典,即嵌套字典,则嵌套字典在下一个level,每一个level的key的indent都不一样。

思路分析:
这是个"拼接字符串"问题,元素有""{}:,\n和空格indent。
遍历一个个(k, v)键值对,拼接yield起来,遇到嵌套字典就递归,即递归+yield。

上代码。

#coding=utf-8 
def pretty_dict(obj, indent=' '): 
 def _pretty(obj, indent): 
  for i, tup in enumerate(obj.items()): 
   k, v = tup 
   #如果是字符串则拼上"" 
   if isinstance(k, basestring): k = '"%s"'% k 
   if isinstance(v, basestring): v = '"%s"'% v 
   #如果是字典则递归 
   if isinstance(v, dict): 
    v = ''.join(_pretty(v, indent + ' '* len(str(k) + ': {')))#计算下一层的indent 
   #case,根据(k,v)对在哪个位置确定拼接什么 
   if i == 0:#开头,拼左花括号 
    if len(obj) == 1: 
     yield '{%s: %s}'% (k, v) 
    else: 
     yield '{%s: %s,\n'% (k, v) 
   elif i == len(obj) - 1:#结尾,拼右花括号 
    yield '%s%s: %s}'% (indent, k, v) 
   else:#中间 
    yield '%s%s: %s,\n'% (indent, k, v) 
 print ''.join(_pretty(obj, indent)) 
 
d = { "root": { "folder2": { "item2": None, "item1": None }, "folder1": { "subfolder1": { "item2": None, "item1": None }, "subfolder2": { "item3": None } } } } 
pretty_dict(d) 
</div>

</div>

您可能想查找下面的文章:

  • Python构造自定义方法来美化字典结构输出的示例

相关文章

  • python实现查询苹果手机维修进度
  • Python实现的批量下载RFC文档
  • python文件的md5加密方法
  • Python中删除文件的程序代码
  • Python中time模块与datetime模块在使用中的不同之处
  • python pickle 和 shelve模块的用法
  • python中的__init__ 、__new__、__call__小结
  • Python中使用logging模块代替print(logging简明指南)
  • 一个简单的python程序实例(通讯录)
  • Android模拟器无法启动,报错:Cannot set up guest memory ‘android_arm’ Invalid argument的解决方法

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • Python实时获取cmd的输出
    • 编写Python脚本抓取网络小说来制作自己的阅读器
    • Python中运行并行任务技巧
    • python使用pymysql实现操作mysql
    • Python使用PDFMiner解析PDF代码实例
    • Python加pyGame实现的简单拼图游戏实例
    • Python struct模块解析
    • Python深入学习之闭包
    • Python迭代用法实例教程
    • 使用python3.5仿微软记事本notepad

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有