【发布时间】:2021-03-07 08:48:03
【问题描述】:
我正在使用 Python 3.8。
以下列表包含整数,我需要从该列表中生成层次结构:
list1 = [[15, 1], [22, 1], [23, 1], [121, 15], [101, 22], [105, 23], [106, 23], [108, 23], [155, 121], [120, 108], [19, 2], [25, 5], [33, 8], [35, 8], [28, 25], [29, 28]]
我需要这个结果(输出可以是一个列表,例如[[[1, 15, 22, 23], [15, 121], [121, 155], [22, 101], [23, 105, 106, 108], [108, 120]], [2, 19], [[5, 25], [25, 28], [28, 29]], [8, 33, 35]]):
1 ---- 15 ---- 121 ---- 155
\---- 22 ---- 101
\--- 23 ---- 105
\----- 106
\---- 108 ---- 120
2 ---- 19
5 ---- 25 ---- 28 ----- 29
8 ---- 33
\---- 35
层次结构不包含任何重复项。同样list1 中列表的第一项不包含重复/重复的元素,但list1 中列表的第二项包含。
如何生成这种层次结构?
注意:我可以通过使用一些代码来做到这一点,但它可能会很长并且 CPU 成本可能会很高(实际列表很长)。
【问题讨论】:
-
你能把预期的输出显示为合法的python吗?
-
“我可以通过使用一些代码来做到这一点” - 你会期待一个没有代码的答案吗??
-
@python_user,我添加了一个示例输出列表,但可能有更好的建议。
-
为什么是
[[5, 25], [2, 28], [28, 29]]而不是[[5, 25], [[25, 28], [[28, 29]]]]? @demirod -
@python_user,我已经更正了。
标签: python python-3.x list hierarchy