Учитывая следующий массив:Иерархическая суммирующий в питона
a = []
a.append({'c': 1, 'v': 10, 'p': 4})
a.append({'c': 2, 'v': 10, 'p': 4})
a.append({'c': 3, 'v': 10, 'p': None})
a.append({'c': 4, 'v': 0, 'p': None})
a.append({'c': 5, 'v': 10, 'p': 1})
a.append({'c': 6, 'v': 10, 'p': 1})
где с = код, v = значение и р = Родитель таблица выглядит следующим образом:
c v p
1 4
2 10 4
3 10
4
5 10 1
6 10 1
Я должен суммировать каждый родитель со значениями это дети Ожидаемый результат таблица будет:
c v p
1 20 4
2 10 4
3 10
4 30
5 10 1
6 10 1
Как это сделать?
Нет, ожидаемый результат для 4 равен 30, как 1 является родительским 5 и 6 (так он суммируется до 20. 4 является родительским для 1 и 2. Поскольку 1 представляет собой сумму 5 и 6 + 2 (у которой значение 10, поэтому 10 + 10 + 10 = 30 – Gabor
Извините, моя ошибка. быть несогласованностью в вашем примере. В коде '1' имеет значение' 10', но в таблице оно имеет значение '0' –
True. Вы правы. Фактически таблица является валидной. – Gabor