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遍历数组的方法小结
Apr 30 Python
python中字符串前面加r的作用
Jun 04 Python
浅析Python编写函数装饰器
Mar 18 Python
Python手机号码归属地查询代码
May 04 Python
Python进阶学习之特殊方法实例详析
Dec 01 Python
Tensorflow 训练自己的数据集将数据直接导入到内存
Jun 19 Python
使用python语言,比较两个字符串是否相同的实例
Jun 29 Python
在ubuntu16.04中将python3设置为默认的命令写法
Oct 31 Python
Python3.5内置模块之os模块、sys模块、shutil模块用法实例分析
Apr 27 Python
django的403/404/500错误自定义页面的配置方式
May 21 Python
Python基于smtplib协议实现发送邮件
Jun 03 Python
pycharm激活码2020最新分享适用pycharm2020最新版亲测可用
Nov 22 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
颠覆常识!无色透明的咖啡诞生了(中日双语)
2021/03/03 咖啡文化
php数组函数序列 之array_count_values() 统计数组中所有值出现的次数函数
2011/10/29 PHP
php 模拟 asp.net webFrom 按钮提交事件的思路及代码
2013/12/02 PHP
php递归函数中使用return的注意事项
2014/01/17 PHP
php使用指定编码导出mysql数据到csv文件的方法
2015/03/31 PHP
PHP实现微信发红包程序
2015/08/24 PHP
thinkPHP3.1验证码的简单实现方法
2016/04/22 PHP
php错误日志简单配置方法
2016/07/11 PHP
提高 DHTML 页面性能
2006/12/25 Javascript
jQuery中:first-child选择器用法实例
2014/12/31 Javascript
理解javascript定时器中的单线程
2016/02/23 Javascript
JavaScript代码因逗号不规范导致IE不兼容的问题
2016/02/25 Javascript
JavaScript 正则表达式中global模式的特性
2016/02/25 Javascript
基于Vuejs框架实现翻页组件
2020/06/29 Javascript
Angular 输入框实现自定义验证功能
2017/02/19 Javascript
Node.js中Bootstrap-table的两种分页的实现方法
2017/09/18 Javascript
学习node.js 断言的使用详解
2019/03/18 Javascript
vue中使用 pako.js 解密 gzip加密字符串的方法
2019/06/10 Javascript
使用异步controller与jQuery实现卷帘式分页
2019/06/18 jQuery
一文秒懂JavaScript构造函数、实例、原型对象以及原型链
2020/08/25 Javascript
[01:07:41]IG vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python获取txt文件词向量过程详解
2019/07/05 Python
简单瞅瞅Python vars()内置函数的实现
2019/09/27 Python
Python3 Tkinkter + SQLite实现登录和注册界面
2019/11/19 Python
解决pytorch-yolov3 train 报错的问题
2020/02/18 Python
荷兰男士时尚网上商店:Suitable
2017/12/25 全球购物
如何为DataGridView添加一个定制的Column Type
2014/01/21 面试题
园林资料员岗位职责
2013/12/30 职场文书
户籍证明的格式
2014/01/13 职场文书
《草原》教学反思
2014/02/15 职场文书
学校食品安全实施方案
2014/06/14 职场文书
新教师教学工作总结
2015/08/12 职场文书
护士自荐信范文(2016推荐篇)
2016/01/28 职场文书
2019年怎样才能撰写出优秀的自荐信
2019/03/25 职场文书
PHP中多字节字符串操作实例详解
2021/08/23 PHP
Python读写yaml文件
2022/03/20 Python