Создайте словарь Python из дерева объектов, связанных иерархией родитель-потомок.Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Создайте словарь Python из дерева объектов, связанных иерархией родитель-потомок.

Сообщение Anonymous »

У меня есть иерархический набор данных, состоящий из объектов, связанных отношениями родитель-потомок в древовидной структуре. Глубина дерева теперь известна априори.
Каждый узел дерева представляет собой объект, имеющий метод .child(), который позволяет извлечь его первый уровень. дочерние узлы в виде списка объектов, но только дочерние узлы первого уровня.
например. object_18_at_level_57.child() -> [object_15_at_level_58, object_177_at_level_58, object_189_at_level_58]
Затем я могу вызвать один и тот же метод .child() для всех объектов в этом списке чтобы получить подподобъекты и т. д. Но это утомительный кошмар цикла for.
Поэтому я хотел бы создать функцию, которая возвращает мне dict() всех нисходящих дочерних элементов любого заданного объекта в наборе данных. Например:

Код: Выделить всё

my_func(object_18_at_level_57) -> {
object_18_at_level_57:
{object_15_at_level_58: object_222_at_level_59: { { { any depth... } } } },
{object_177_at_level_58: object_11_at_level_59: { { { any depth... } } } },
{object_189_at_level_58: object_87_at_level_59: { { { any depth... } } } },
}
Например, применив функцию такого типа «прямой рекурсивным способом», но не зная заранее максимальную глубину под объектом узла:

Код: Выделить всё

def child_object(x):
return {x:x.child()}
Обратите также внимание, что глубина любого дочернего узла не обязательно одинакова для всех его братьев и сестер. Некоторые могут «дойти до конца» быстрее.
Как бы вы поступили?

Подробнее здесь: https://stackoverflow.com/questions/791 ... -hierarchy
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»