如何将扁平化的json数据转换为分类字符串



我有这样的数据,也就是输入数据

data = ['a-aa-aab', 'a-aa-aaa', 'b-ba', 'a-aa-aab-aaba', 'a-aa-aab-aabb']

我想把它转换成这样的分类字符串,也就是输出数据

root a b
a a-aa
a-aa a-aa-aab a-aa-aaa
a-aa-aab a-aa-aab-aaba a-aa-aab-aabb
b b-ba

我认为这个示例中有一个递归解决方案,但我不知道如何实现这个目标。如果你碰巧知道答案,请告诉我,上帝保佑你!

from collections import defaultdict
data = ['a-aa-aab', 'a-aa-aaa', 'b-ba', 'a-aa-aab-aaba', 'a-aa-aab-aabb']
result = defaultdict(set)
for string in data:
parts = string.split('-')
for i in range(len(parts)):
key = '-'.join(parts[:i])
val = '-'.join(parts[:i+1])
result[key].add(val)
print(result)
for prefix, children in result.items():
print(prefix or 'root', *children)

最新更新