【问题标题】:Python: create tree structure from given array/listPython:从给定的数组/列表创建树结构
【发布时间】:2023-04-04 23:55:01
【问题描述】:

我遇到了一个问题。

假设我有一个给定的数组,或者 4 个单独的列表(列)

P1 L1 V1 O1

P1 L1 V1 O2

P1 L1 V2 O1 

P1 L1 V3 O3

P2 L1 V2 O1
 
P2 L2 V1 O2

P2 L3 V4 O2

我想把它转换成python树结构:

P1|

  |L1|

     |V1|

     |   |O1

     |   |O2

     |   |O3

     |V2|

     |  |O1

     |V3|

        |O3

P2|

  |L1|V2|O1

  |L2|V1|O2

  |L3|V4|O2

现在好了,这个给定的数组可以根据用户输入而改变,它总是有这种“结构”,但它不是先验定义的。

我的目标是定义这样一个结构,并有可能在最低级别了解给定孩子的所有父母。

总而言之,按照@trincot 的建议,我输入了一个输入/输出数据类型:

Input: 4 lists, example:
['P1', 'P1', 'P1', 'P1', 'P1', 'P1', 'P1', 'P1', 'P1', 'P1', 'P1', 'P1', 'P2', 'P2', 'P2', 'P2', 'P2', 'P2', 'P2', 'P2', 'P2', 'P2']

output: One tree structure like this:
{'P1': {'L1': {'V1': {'O1': 'O1'}}, 'L2': {'V2': {'O2': 'O2'}, 'V1': {'O1': 'O1'}}}, 'P2': {'L1': {'V1': {'O1': 'O1'}}, 'L2': {'V2': {'O2': 'O2'}, 'V1': {'O1': 'O1'}}}}

在输出中,我想知道最后一级的元素是什么,并知道该元素的所有父级。

当然,如果其他数据类型更合适,我将不胜感激。

感谢您的帮助!

【问题讨论】:

  • 请以您所拥有的确切数据结构提供您的输入,以及您期望的确切输出结构(以 Python 语法)。
  • 我的输入将是包含 P、L、V、O 的 4 个列表。我的输出将是一个树结构,如:P1{L1{V1{O1,O2,O3} , V2{O1 , O2}}, {L2 {.....}}, ....}
  • 请编辑您的问题并以 Python 语法添加此输入/输出,而不是(仅)作为可能模棱两可的英文描述。
  • 完成,谢谢建议
  • 该示例输入是否与示例输入相关?你能让它们相互关联,所以有一个实际的测试用例要做吗?

标签:
python
tree
binary-search-tree
nodechildren