Python递归输出字典所有不同深度的路径
应用场景
假设有这样一个字典结构test_dict = {'a':{'b':{'c':1}},'d':2},test_dict其实可以看作是一种树状结构,其中每个叶子节点深度不一定相同,如果我们希望输出根节点到所有叶子节点的路径,也就是a->b->c->1;d->2,该如何解决?
代码
#encoding=utf-8
import sys
def recurPrintPath(dic):
for key in dic.keys():
print key
#判断下一级是否还是字典,如果是字典继续递归
if type(dic[key]) == type({}):
recurPrintPath(dic[key])
else:
print dic[key]
print '--------------'
def main():
reload(sys)
sys.setdefaultencoding('utf-8')
test_dict = {'a':{'b':{'c':1}},'d':2}
recurPrintPath(test_dict)
if __name__ == '__main__':
main()
输出结果:
a
b
c
1
--------------
d
2
--------------