Python多维/嵌套字典数据无限遍历的实现
最近拾回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是否符合字典特征,如果符合则迭代执行,不符合则返回循环继续执行至结束
具体代码:
defis_dict(dict_a):#此方法弃用,python已提供数据类型检测方法isinstance() try: dict_a.keys() exceptException,data: returnFalse returnTrue deflist_all_dict(dict_a): ifisinstance(dict_a,dict):#使用isinstance检测数据类型 forxinrange(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多维/嵌套字典数据无限遍历的实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。