Я пытаюсь создать иерархию dicts для использования для создания модели дерева в Qt.Как отсортировать иерархический список в дереве/пиримидной модели dicts?
Данные в списке с каждой записью будучи [Следующая одноуровневый, предыдущий родственный, First_Child, Родитель] и индекс элемента в списке имя/индекс контура, описанного в иерархии записи.
Например, если бы я, чтобы ввести иерархию из раздела 4.RETR_TREE here
hierarchy =
array([[[ 7, -1, 1, -1],
[-1, -1, 2, 0],
[-1, -1, 3, 1],
[-1, -1, 4, 2],
[-1, -1, 5, 3],
[ 6, -1, -1, 4],
[-1, 5, -1, 4],
[ 8, 0, -1, -1],
[-1, 7, -1, -1]]])
Я хотел бы получить этот результат:
{0:{1:{2:{3:{4:{5:{},6:{}}}}}},
7:{},
8:{}}
Я ищу, чтобы сделать это, чтобы построить дерева в Qt, поэтому я могу легко видеть, какие контуры содержат другие. Если у вас есть лучшее представление о том, как преобразовать данные иерархии в модель дерева Qt, которые также будут оценены.
Заранее благодарен!
Wow! Я вижу, что это работает с простым списком списков, но не требуется numpy. Вот версия для тех из нас, которые не имеют понятий dict: 'T = lambda i: dict ((j, T (j)) для j, h в перечислении (H), если h [3] == i); печать T (-1) ' –