2016-08-02 25 views
6

की dict में मान से सभी संयोजन उत्पन्न मैं मान जो एक dict में अनुक्रमित सूचियों में रखा जाता है, तो तरह के सभी संयोजनों उत्पन्न करने के लिए करना चाहते हैं:पायथन: सूचियों

{'A':['D','E'],'B':['F','G','H'],'C':['I','J']} 

हर बार, हर dict में से एक आइटम प्रविष्टि उठाया जाएगा और अन्य कुंजी से आइटम के लिए संयुक्त है, तो हम कर सकते हैं:

['D','F','I'] 
['D','F','J'] 
['D','G','I'] 
['D','G','J'] 
['D','H','I'] 
... 
['E','H','J'] 

मैं जानता हूँ कि itertools में सूची में आइटम के संयोजन उत्पन्न करने के लिए एक कुछ है लेकिन मुझे नहीं लगता मैं इसे यहाँ का उपयोग कर सकते हैं चूंकि मेरे पास मूल्यों के अलग-अलग "पूल" हैं।

क्या ऐसा करने के लिए कोई मौजूदा समाधान है, या मैं इसे स्वयं करने के लिए कैसे आगे बढ़ना चाहिए, मैं इस घोंसले वाली संरचना से काफी अटक गया हूं।

+2

फिर आपको ऐसा करने के लिए कोड लिखने का प्रयास करना चाहिए, और अगर आपको समस्याएं आती हैं तो वापस आएं। –

+0

'itertools.product (* yourdict.values ​​())' – Phillip

+2

शब्दकोशों का आदेश नहीं दिया गया है! कृपया स्पष्ट करें। –

उत्तर

12
import itertools as it 

my_dict={'A':['D','E'],'B':['F','G','H'],'C':['I','J']} 
allNames = sorted(my_dict) 
combinations = it.product(*(my_dict[Name] for Name in allNames)) 
print(list(combinations)) 

जो प्रिंट

[('डी', 'एफ', 'मैं'), ('डी', 'एफ', 'जे'), ('डी', ' जी ',' मैं '), (' डी ',' जी ',' जे '), (' डी ',' एच ',' आई '), (' डी ',' एच ',' जे '), ('ई', 'एफ', 'आई'), ('ई', 'एफ', 'जे'), ('ई', 'जी', 'आई'), ('ई', 'जी' , 'जे'), ('ई', 'एच', 'आई'), ('ई', 'एच', 'जे')]

संबंधित मुद्दे