Python多维/嵌套字典数据无限遍历的实现


Posted in Python onNovember 04, 2016

最近拾回Django学习,实例练习中遇到了对多维字典类型数据的遍历操作问题,Google查询没有相关资料…毕竟是新手,到自己动手时发现并非想象中简单,颇有两次曲折才最终实现效果,将过程记录下来希望对大家有用。

实例数据(多重嵌套):

person = {"male":{"name":"Shawn"}, "female":{"name":"Betty","age":23},"children":{"name":{"first_name":"李", "last_name":{"old":"明明","now":"铭"}},"age":4}}

目的:

遍历person中所有嵌套字典类型数据,并以 key : value 的方式显示思路:首先分析数据是否符合字典特征打印该数据的key及对应value循环检查该数据的每一个子value是否符合字典特征,如果符合则迭代执行,不符合则返回循环继续执行至结束

具体代码:

def is_dict(dict_a): #此方法弃用,python已提供数据类型检测方法isinstance() 

 try: 

  dict_a.keys() 

 except Exception , data: 

  return False 

 return True 

 

def list_all_dict(dict_a): 

 if isinstance(dict_a,dict) : #使用isinstance检测数据类型 

  for x in range(len(dict_a)): 

   temp_key = dict_a.keys()[x] 

   temp_value = dict_a[temp_key] 

   print"%s : %s" %(temp_key,temp_value) 

   list_all_dict(temp_value) #自我调用实现无限遍历

结果:

执行 list_all_dict(person),系统回应 :

male : {'name': 'Shawn'} 

name : Shawn 

children : {'age': 4, 'name': {'first_name': '\xc0\xee', 'last_name': {'now':'\xc3\xfa', 'old': '\xc3\xf7\xc3\xf7'}}} 

age : 4 

name : {'first_name': '\xc0\xee', 'last_name': {'now': '\xc3\xfa', 'old':'\xc3\xf7\xc3\xf7'}} 

first_name : 李 

last_name : {'now': '\xc3\xfa', 'old': '\xc3\xf7\xc3\xf7'} 

now : 铭 

old : 明明 

female : {'age': 23, 'name': 'Betty'} 

age : 23 

name : Betty

以上这篇Python多维/嵌套字典数据无限遍历的实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
收集的几个Python小技巧分享
Nov 22 Python
使用Python求解最大公约数的实现方法
Aug 20 Python
python基础入门学习笔记(Python环境搭建)
Jan 13 Python
Python中struct模块对字节流/二进制流的操作教程
Jan 21 Python
在Python中使用AOP实现Redis缓存示例
Jul 11 Python
Python获取当前公网ip并自动断开宽带连接实例代码
Jan 12 Python
Python简单实现控制电脑的方法
Jan 22 Python
python实现五子棋游戏
Jun 18 Python
基于Django ORM、一对一、一对多、多对多的全面讲解
Jul 26 Python
python基础 range的用法解析
Aug 23 Python
pandas使用函数批量处理数据(map、apply、applymap)
Nov 27 Python
python实现批量移动文件
Apr 05 Python
浅谈Python数据类型判断及列表脚本操作
Nov 04 #Python
浅谈python字典多键值及重复键值的使用
Nov 04 #Python
用Python将动态GIF图片倒放播放的方法
Nov 02 #Python
各种Python库安装包下载地址与安装过程详细介绍(Windows版)
Nov 02 #Python
Python实现简单的四则运算计算器
Nov 02 #Python
利用Python命令行传递实例化对象的方法
Nov 02 #Python
Python 性能优化技巧总结
Nov 01 #Python
You might like
学习discuz php 引入文件的方法DISCUZ_ROOT
2009/06/21 PHP
php调用mysql数据 dbclass类
2011/05/07 PHP
PHP循环结构实例讲解
2014/02/10 PHP
提高jQuery性能的十个诀窍
2013/11/14 Javascript
drag-and-drop实现图片浏览器预览
2015/08/06 Javascript
根据user-agent判断蜘蛛代码黑帽跳转代码(js版与php版本)
2015/09/14 Javascript
JavaScript模块规范之AMD规范和CMD规范
2015/10/27 Javascript
jQuery简单实现提交数据出现loading进度条的方法
2016/03/29 Javascript
JavaScript随机打乱数组顺序之随机洗牌算法
2016/08/02 Javascript
vuejs通过filterBy、orderBy实现搜索筛选、降序排序数据
2020/10/26 Javascript
Bootstrap模态框案例解析
2017/03/05 Javascript
jquery实现超简单的瀑布流布局【推荐】
2017/03/08 Javascript
Linux系统中利用node.js提取Word(doc/docx)及PDF文本的内容
2017/06/17 Javascript
详解node-ccap模块生成captcha验证码
2017/07/01 Javascript
Angular中支持SCSS的方法
2017/11/18 Javascript
Element-UI踩坑之Pagination组件的使用
2018/10/29 Javascript
React Component存在的几种形式详解
2018/11/06 Javascript
详解CommonJS和ES6模块循环加载处理的区别
2018/12/26 Javascript
微信小程序实现pdf、word等格式文件上传的方法
2019/09/10 Javascript
Python中有趣在__call__函数
2015/06/21 Python
python中set常用操作汇总
2016/06/30 Python
Opencv+Python 色彩通道拆分及合并的示例
2018/12/08 Python
用HTML5实现网站在windows8中贴靠的方法
2013/04/21 HTML / CSS
Philosophy美国官网:美国美容品牌
2016/08/15 全球购物
美国网上花店:JustFlowers
2017/02/12 全球购物
土耳其时尚潮流在线购物网站:Trendyol
2017/10/10 全球购物
英国拳击装备购物网站:RDX Sports
2018/01/23 全球购物
澳大利亚二手奢侈品网站:Modsie
2019/09/23 全球购物
英国第一职业高尔夫商店:Clickgolf.co.uk
2020/11/18 全球购物
.NET现在共支持多少种语言
2014/02/26 面试题
JDBC操作数据库的基本流程是什么
2014/10/28 面试题
大学优秀班主任事迹材料
2014/05/02 职场文书
教研处工作方案
2014/05/26 职场文书
普通党员对照检查材料
2014/09/24 职场文书
2014年后勤工作总结
2014/11/18 职场文书
入党转正介绍人意见
2015/06/03 职场文书