データ:依存関係リスト。非周期的であることがすでに確認されています。したがって、ここでは、「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-fooy'allがこれにもたらすことができることを感謝します。