繁体   English   中英

Python-递归创建给定三个不同列表的任意嵌套字典

[英]Python - Recursively create arbitrarily nested dict given three different lists

假设给了我三个列表:根列表,子列表(可以有子列表)和节点列表。 在这些列表中的任何一项上,我都可以调用.children属性来获取其子级。

目标是构建一个看起来像这样的任意嵌套的字典:

{root_item: {child_item: {child_child_item: [node1, node2]}}}

到目前为止的尝试-在一种方法中,我称为递归方法:

structure = {}
for root in list_of_roots:
    structure[root] = self._build_structure(root)

def _build_structure(self, item)
    if item in list_of_nodes:
        return item
    else:
        for child in item.children:
            self._build_structure(child)

因此,问题在于递归方法不返回任何中间内容,仅返回节点(没有子项的子项)。 我缺少一些东西,需要一些帮助来弄清楚如何解决这个问题。

请记住,我是编程新手。

def _build_structure(self, item)
    if item in list_of_nodes:
        return item
    else:
        return [self._build_structure(child) for child in item.children]

您需要返回您的递归调用...如果您需要更多帮助,则需要发布一个最小的list_of_nodes示例...。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM