数据:一个依赖列表,已经验证为非循环的。所以在这里,'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
显然,这很弱 :) 我一直在思考如何在那里获得收益,我很感激你们能带来的任何 py-foo。