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

如何在Python中动态构建树

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

如何在Python中动态构建树

您可以使用实用程序功能轻松完成此操作

def add_element(root, path, data):    reduce(lambda x, y: x[y], path[:-1], root)[path[-1]] = data

可以这样使用

import collectionstree = lambda: collections.defaultdict(tree)root = tree()add_element(root, ['toplevel', 'secondlevel', 'thirdlevel'], 1)add_element(root, ['toplevel', 'anotherlevel'], 2)print root

输出量

defaultdict(<function <lambda> at 0x7f1145eac7d0>,    {'toplevel': defaultdict(<function <lambda> at 0x7f1145eac7d0>,       {'secondlevel': defaultdict(<function <lambda> at 0x7f1145eac7d0>, {'thirdlevel': 1}),        'anotherlevel': 2       })    })

如果要以递归方式实现此功能,则可以获取第一个元素并从当前元素中获取子对象,

root
并从中剥离第一个元素
path
,以进行下一次迭代。

def add_element(root, path, data):    if len(path) == 1:        root[path[0]] = data    else:        add_element(root[path[0]], path[1:], data)


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

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

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