首页 > 解决方案 > 如何将扁平化的 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

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

标签: python

解决方案


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)

推荐阅读