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之关于循环的小伎俩
Oct 02 Python
python中defaultdict的用法详解
Jun 07 Python
对pandas中两种数据类型Series和DataFrame的区别详解
Nov 12 Python
pandas 快速处理 date_time 日期格式方法
Nov 12 Python
python树莓派红外反射传感器
Jan 21 Python
python利用多种方式来统计词频(单词个数)
May 27 Python
浅谈Python中(&,|)和(and,or)之间的区别
Aug 07 Python
Django stark组件使用及原理详解
Aug 22 Python
TensorFlow设置日志级别的几种方式小结
Feb 04 Python
python3用urllib抓取贴吧邮箱和QQ实例
Mar 10 Python
Python Pandas 对列/行进行选择,增加,删除操作
May 17 Python
Python使用openpyxl模块处理Excel文件
Jun 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
php radio 单选框获取与保持值的实现代码
2010/05/15 PHP
php防注入,表单提交值转义的实现详解
2013/06/10 PHP
如何使用“PHP” 彩蛋进行敏感信息获取
2013/08/07 PHP
PHP判断字符串长度的两种方法很实用
2015/09/22 PHP
JSON字符串传到后台PHP处理问题的解决方法
2016/06/05 PHP
PHP实现微信小程序人脸识别刷脸登录功能
2018/05/24 PHP
PHP实现的微信公众号扫码模拟登录功能示例
2019/05/30 PHP
thinkphp5框架调用其它控制器方法 实现自定义跳转界面功能示例
2019/07/03 PHP
获取页面高度,窗口高度,滚动条高度等参数值getPageSize,getPageScroll
2006/09/22 Javascript
关于IE7 IE8弹出窗口顶上
2008/12/22 Javascript
jquery实现文本框鼠标右击无效以及不能输入的代码
2010/11/05 Javascript
JSON无限折叠菜单编写实例
2013/12/16 Javascript
jquery移动端TAB触屏切换实现效果
2020/12/22 Javascript
js倒计时简单实现方法
2015/12/17 Javascript
Jquery UI实现一次拖拽多个选中的元素操作
2020/12/01 Javascript
easyui combobox开启搜索自动完成功能的实例代码
2016/11/08 Javascript
javascript事件捕获机制【深入分析IE和DOM中的事件模型】
2016/12/15 Javascript
在一般处理程序(ashx)中弹出js提示语
2017/08/16 Javascript
ES6 Proxy实现Vue的变化检测问题
2019/06/11 Javascript
javascript开发实现贪吃蛇游戏
2020/07/31 Javascript
Python数据类型学习笔记
2016/01/13 Python
Python iter()函数用法实例分析
2018/03/17 Python
Python利用递归实现文件的复制方法
2018/10/27 Python
在mac下查找python包存放路径site-packages的实现方法
2018/11/06 Python
python3实现猜数字游戏
2020/12/07 Python
用python写一个定时提醒程序的实现代码
2019/07/22 Python
Django之路由层的实现
2019/09/09 Python
python求绝对值的三种方法小结
2019/12/04 Python
Python多进程multiprocessing、进程池用法实例分析
2020/03/24 Python
Python的信号库Blinker用法详解
2020/12/31 Python
python 装饰器重要在哪
2021/02/14 Python
html5 touch事件实现触屏页面上下滑动(一)
2016/03/10 HTML / CSS
Giglio俄罗斯奢侈品购物网:男士、女士、儿童高级时装
2018/07/27 全球购物
社区戒毒工作方案
2014/06/04 职场文书
乡镇务虚会发言材料
2014/10/20 职场文书
浅谈如何保证Mysql主从一致
2022/03/13 MySQL