Описание
Мы загрузили набор данных для нашего исследования, который содержит иерархические данные. Однако создатели не были последовательны на всех. Например, иногда у нас есть что-то вроде:
term1:term2:term3:term4
мы в других случаях имеем:
term4
Пример данных
В качестве примера давайте рассмотрим этот набор данных:
data = [['root','test','coffee'],
['root', 'test', 'gains'],
['root','gains', 'coffee'],
['root','milk','bread']]
Теперь я хочу написать код для расшифровки полной иерархии (или, по крайней мере, настолько хорошо, насколько это возможно) на основе этих данных и просто распечатать ветви до конечных точек:
root:test:gains:coffee
root:milk:bread
Я почти уверен, что для этого есть довольно простой трюк, но я еще не нашел, попробовал:
- Начиная с самой длинной ветви (в данном случае это не имеет значения), а затем добавляя новые ветви, когда я сталкиваюсь с терминами, которые не могут поместиться в начальной ветви.