gpt4 book ai didi

python - 从列表列表创建树形图

转载 作者:行者123 更新时间:2023-11-30 21:52:30 26 4
gpt4 key购买 nike

我有一个二维列表:

#      #                #          ^      #    ^           #         ^
l = [['A', '1', '2'], ['B', 'xx', 'A'], ['C', 'B', 's'], ['D', 'd', 'B']]

并且每个列表中的第一个元素可以被视为#ID字符串(在示例中:A, B, C, D)。无论 ID (A, B, C, D) 出现在第二个维度的列表中,我都希望将其替换为实际列表的内容。示例:['B', 'xx', 'A'] 应变为 ['B', 'xx', ['A', '1', '2']] 因为 A 是一个#ID(列表的第一个字符串)并且它出现在第二个列表中。输出应该是:

n = [['A', '1', '2'], ['B', 'xx', ['A', '1', '2']], ['C', ['B', 'xx', ['A', '1', '2']], 's'],
['D', 'd', ['B', 'xx', ['A', '1', '2']]]]

我面临的问题是可能有更长的列表和更多的分支,所以它变得复杂。最后我试图构建一个树形图。我想先计算最高的分支是什么,但还没有想到解决方案。

最佳答案

l = [['A', '1', '2'], ['B', 'xx', 'A'], ['C', 'B', 's'], ['D', 'd', 'B']]

dic = {i[0]:i for i in l}

for i in l:
fv = i[0]

for j, v in enumerate(i):

if v in dic and j!=0:
dic[fv][j] = dic[v]

res = [v for i,v in dic.items()]
print(res)

输出

[['A', '1', '2'],
['B', 'xx', ['A', '1', '2']],
['C', ['B', 'xx', ['A', '1', '2']], 's'],
['D', 'd', ['B', 'xx', ['A', '1', '2']]]]

关于python - 从列表列表创建树形图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59888347/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com