我給出一個問題如下:的Python:使用字典打印因變量
B = C, D
A = B
C = E
意思B依賴於變量C和d,而A是依賴於B,等等。變量E和D是獨立的。然後
'A' 的輸入應該返回:
E, C, D, B, A
列出所有相關變量。爲了解決這個問題,我最開始定義字典來輕鬆地重複這種狀況:
letter = {'A' : ['B'], 'B' : ['C', 'D'], 'C' : ['E']}
不過,我現在被困在我應該如何循環此,爲了有效地打印所有的孩子們。我相信這是錯誤的,但我認爲我可能會朝着正確的方向前進:
def problem(value):
letter = {'A' : ['B'], 'B' : ['C', 'D'], 'C' : ['E']}
for i in letter:
if i != value:
continue
if len(letter[i]) > 1:
for k in letter:
print("".join(letter[k]), k)
print("".join(letter[i]), i)
請幫忙!
這裏最好使用一棵樹。請參閱http://stackoverflow.com/questions/5287516/dependencies-tree-implementation – Selcuk
使用有向圖不是更好嗎?如果您可以使用外部模塊,請查看networkX。如果從輸入中生成有向圖(這是您的問題所在),則可以從節點獲取所有後代:https://networkx.github.io/documentation/latest/reference/generated/networkx.algorithms.dag .descendants.html#networkx.algorithms.dag.descendants – DainDwarf