[英]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.