栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何完全遍历未知深度的复杂字典?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何完全遍历未知深度的复杂字典?

您可以使用递归生成器将字典转换为平面列表。

def dict_generator(indict, pre=None):    pre = pre[:] if pre else []    if isinstance(indict, dict):        for key, value in indict.items(): if isinstance(value, dict):     for d in dict_generator(value, pre + [key]):         yield d elif isinstance(value, list) or isinstance(value, tuple):     for v in value:         for d in dict_generator(v, pre + [key]):  yield d else:     yield pre + [key, value]    else:        yield pre + [indict]

它返回

[u'body', u'kind', u'var'][u'init', u'declarations', u'body', u'type', u'Literal'][u'init', u'declarations', u'body', u'value', 2][u'declarations', u'body', u'type', u'VariableDeclarator'][u'id', u'declarations', u'body', u'type', u'Identifier'][u'id', u'declarations', u'body', u'name', u'i'][u'body', u'type', u'VariableDeclaration'][u'body', u'kind', u'var'][u'init', u'declarations', u'body', u'type', u'Literal'][u'init', u'declarations', u'body', u'value', 4][u'declarations', u'body', u'type', u'VariableDeclarator'][u'id', u'declarations', u'body', u'type', u'Identifier'][u'id', u'declarations', u'body', u'name', u'j'][u'body', u'type', u'VariableDeclaration'][u'body', u'kind', u'var'][u'init', u'declarations', u'body', u'operator', u'*'][u'right', u'init', u'declarations', u'body', u'type', u'Identifier'][u'right', u'init', u'declarations', u'body', u'name', u'j'][u'init', u'declarations', u'body', u'type', u'Binaryexpression'][u'left', u'init', u'declarations', u'body', u'type', u'Identifier'][u'left', u'init', u'declarations', u'body', u'name', u'i'][u'declarations', u'body', u'type', u'VariableDeclarator'][u'id', u'declarations', u'body', u'type', u'Identifier'][u'id', u'declarations', u'body', u'name', u'answer'][u'body', u'type', u'VariableDeclaration'][u'type', u'Program']

更新 :固定键列表从

[key] + pre
到,
pre + [key]
如注释中所述。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/485448.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号