Данные: список зависимостей, уже проверенный на ацикличность. Итак, здесь «a» зависит от «b», «c» (c зависит от d) и т. Д. *
A = { 'a' : dict(b=1, c=1),
'c' : dict(d=1),
'd' : dict(e=1,f=1,g=1),
'h' : dict(j=1)
}
Мне бы хотелось иметь рекурсивное решение сверху вниз, скажем, найти цепочку, начинающуюся с
'a': a, c, d, e, g, f, b
Итак, прямо сейчас (решение без генератора):
def get_all(D,k):
L = []
def get2(D,k):
L.append(k)
for ii in D.get(k,[]):
get2(D, ii)
get2(D,k)
return L
Очевидно, что это довольно слабо :) Я бился головой о том, как получить урожай внутри, и я был бы признателен любому пи-фу, которого вы можете принести этому.