擅长:python、mysql、java
<p>这是一个开始:</p>
<pre><code>def populate_levels(dct, levels):
if levels:
if levels[0] not in dct:
dct[levels[0]] = {}
populate_levels(dct[levels[0]], levels[1:])
def create_final(dct):
final = []
for title in dct:
final.append({"title": title, "children": create_final(dct[title])})
return final
data = ['a-ab-aba-abaa-abaaa', 'a-ab-aba-abab', 'a-ac-aca-acaa', 'a-ac-aca-acab']
template = {}
for item in data:
populate_levels(template, item.split('-'))
final = create_final(template)
</code></pre>
<p>我看不到一个干净的方法一次完成所有的工作,所以我在<code>template</code>字典之间创建了这个。现在,如果一个“节点”没有子节点,它对应的dict将包含<code>'children': []</code>
如果愿意,可以在<code>create_final</code>函数中更改此行为</p>