0
私はこれをおそらく今日非常に単純な問題にしようとしてきました。特定の幅からのPythonツリーのトラバーサル
たとえば、次のような辞書があるとします。
di = {'a' : ['b','c','d'],c : ['g','j','k'],k : ['z','y']}
私は、指定された要素よりもツリーの下側に表示される要素だけを書き出しようとしています。たとえば、get_low( 'a'、2)を呼び出すと、要素[g、j、k、z、y]が返されます。
私の試み:
def get_low(obj, level, children = [], generation = 0):
if level == 0:
children = [obj]
generation += 1
#print (generation, level)
for child in di[obj]:
if level <= generation:
children.append(child)
get_low(child, level,children, generation)
return set(children)
このプリントが正しい値のいくつかは、二つのことは動作しませんが:1)それは含まれていませんOBJレベルがあれば)ゼロと2に設定されている場合私はレベルを例えばに設定した4の場合、空のset()は結果として投げられません。
ありがとうございました!