你好Stackoverlow成員鍵的變體數量,級聯字典的Python(遞歸?)
我想,另一方面串聯鍵(串)在手,和值(列表),的一個詞典。
爲了您更好的瞭解,下面是我在開頭:
dict = {'bk1':
{'k11': ['a1', 'b1', 'c1'],
'k12': ['a2', 'b2', 'c2']},
'bk2':
{'k21': ['d1', 'e1'],
'k22': ['d2', 'e2'],
'k23': ['d3', 'e3']},
'bk3':
{'k31': ['f1', 'g1', 'h1'],
'k32': ['f2', 'g2', 'h2']}
}
這裏是我想什麼底:
newdict = {'k11_k21_k31': ['a1', 'b1', 'c1', 'd1', 'e1', 'f1', 'g1', 'h1'],
'k11_k21_k32': ['a1', 'b1', 'c1', 'd1', 'e1', 'f2', 'g2', 'h2'],
'k11_k22_k31': ['a1', 'b1', 'c1', 'd2', 'e2', 'f1', 'g1', 'h1'],
'k11_k22_k32': ['a1', 'b1', 'c1', 'd2', 'e2', 'f2', 'g2', 'h2'],
'k11_k23_k31': ['a1', 'b1', 'c1', 'd3', 'e3', 'f1', 'g1', 'h1'],
'k11_k23_k32': ['a1', 'b1', 'c1', 'd3', 'e3', 'f2', 'g2', 'h2'],
'k12_k21_k31': ['a2', 'b2', 'c2', 'd1', 'e1', 'f1', 'g1', 'h1'],
'k12_k21_k32': ['a2', 'b2', 'c2', 'd1', 'e1', 'f2', 'g2', 'h2'],
'k12_k22_k31': ['a2', 'b2', 'c2', 'd2', 'e2', 'f1', 'g1', 'h1'],
'k12_k22_k32': ['a2', 'b2', 'c2', 'd2', 'e2', 'f2', 'g2', 'h2'],
'k12_k23_k31': ['a2', 'b2', 'c2', 'd3', 'e3', 'f1', 'g1', 'h1'],
'k12_k23_k32': ['a2', 'b2', 'c2', 'd3', 'e3', 'f2', 'g2', 'h2']}
我想這樣做與:
「大鍵」(BKI),以及一個變種號每個bki,一個變體密鑰數目(kij)。
「大鍵」之間的「完全組合」。舉例來說,我不希望類似的結果:
{'k11_k23': ['a1', 'b1', 'c1', 'd3', 'e3']}
其中 「BK3」 被遺漏。
我有鱗片狀嘗試「for」循環,但循環的次數取決於「大鑰匙」的數量...
然後,我覺得這個問題可以用遞歸來解決(也許?) ,但儘管我的研究和實施它的意願,我失敗了。
任何幫助「遞歸與否」的解決方案將不勝感激。
謝謝
墊
Whoaa,有什麼反應! 非常感謝您的快速回答,它的作品完美!
將Python的[itertools.product( )](https://docs.python.org/2/library/itertools.html)的幫助? – jksnw 2015-04-01 13:45:51