繁体   English   中英

将元组列表修改为显示其层次结构的列表

[英]Modify a tuple list to one showing its hierarchy

我有一个元组列表如下:

my_lists = [("a",["c","d","e"]),("c",["f","g"]),("d",["h"]),("h",["w","n"]),("n",["k"])]

该列表具有每个元组的第一个元素显示的级别,它们应该合并到表示其层次结构的元组列表中,如下所示:

result = [("a", [ ("c", ["f","g"]), ("d", [("h", ["w", ("n", ["k"] )] )] ) ,"e"])]

有什么办法吗?

如果可能的话,最好找到一种方法来返回给定字母的深度级别。

"a" depth level: 5 (the highest)
"d" depth level: 2
"k" depth level: 0 (the lowest)

尝试这个:

my_lists = [("a",["c","d","e"]),("c",["f","g"]),("d",["h"]),("h",["w","n"]),("n",["k"])]

abc = {}
for key, value in my_lists[::-1]:
    new_value = []
    for v in value:
        new_value.append(abc.get(v, v))
    abc[key] = (key, new_value)
result = [abc[my_lists[0][0]]]

print(result)

暂无
暂无

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

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