我試圖讓遞歸的字典的所有組合,但我不能包裹我的頭周圍如何得到正確的輸出。本質上是深度優先搜索,它將輸入保存在(鍵,值)元組或類似的東西中。任何幫助讚賞。感謝/弗雷德Python遞歸設置值排列字典
輸入:
d = {"item1": {1, 2},
"item2": {3, 4},
"item3": {5, 6}}
輸出:
"item1" 1
"item2" 3
"item3" 5
"item3" 6
"item2" 4
"item3" 5
"item3" 6
"item1" 2
"item2" 3
"item3" 5
"item3" 6
"item2" 4
"item3" 5
"item3" 6
一個樹結構工作,但沒有足夠的廣義我的目的,並編輯繁瑣。
更新:目前我硬編碼這些像這樣:
d = {"item1": {1, 2},
"item2": {3, 4},
"item3": {i for i in range(1, 5)}}
for k in d["item1"]:
print ("item1", k)
for j in d["item2"]:
print ("item2", j)
for i in d["item3"]:
print("item3", i)
這似乎是顯而易見的,其中遞歸發生,但我仍然有它的煩惱。謝謝大家迄今爲止所有的建議!它也是在python3中,如果這有什麼區別。
_all一個dictionary_你必須要更精確的組合。按鍵?價值? – Elmex80s
@JoeD發佈了一個優雅的答案,其中包含'[[perm for itertools.product([k],v)] for k,v in d.items()]',現在已被刪除。 –
我不認爲字典是正在嘗試實現的輸出的正確數據結構。此外,你的圖只有'1'和'2'作爲項目值,這是你想要你的輸出有什麼? – AetherUnbound