2017-04-25 6 views
0

ich aus meiner Datenbank somes Daten ein und schalten Sie sie in Wörterbüchern, zum Beispiel:Permutation oder Kombination Daten Python

{1: [<Variable: Low>, <Variable: Medium>, <Variable: High>]} 
{2: [<Variable: Low>, <Variable: Medium>, <Variable: High]} 
{3: [<Variable: Low>, <Variable: Medium>, <Variable: High]} 

In meinem Problem, ich brauche diese Variablen interpoliert und als Endergebnis, ich will:

{1:High,2:High,3:High},{1:High,2:High,3:Medium}{1:High,2:High,3:Low} 
{1:High,2:Medium,3:High},{1:High,2:Medium,3:Medium},{1:High,2:Medium,3:Low}, 
{1:High,2:Low,3:High},{1:High,2:Low,3:Medium},{1:High,2:Low,3:Low}, 
{1:Medium,2:High,3:High},{1:Medium,2:High,3:Medium}{1:Medium,2:High,3:Low} 
{1:Medium,2:Medium,3:High},{1:Medium,2:Medium,3:Medium},{1:Medium,2:Medium,3:Low}, 
{1:Medium,2:Low,3:High},{1:Medium,2:Low,3:Medium},{1:Medium,2:Low,3:Low}, 
{1:Low,2:High,3:High},{1:Low,2:High,3:Medium}{1:Low,2:High,3:Low} 
{1:Low,2:Medium,3:High},{1:Low,2:Medium,3:Medium},{1:Low,2:Medium,3:Low}, 
{1:Low,2:Low,3:High},{1:Low,2:Low,3:Medium},{1:Low,2:Low,3:Low} 

Hat jemand eine Idee, wie man das macht?

Hinweis I: Sowohl die Anzahl der Wörterbücher als auch die Anzahl der Variablen kann unterschiedlich sein.

Hinweis II: Der Code ist außerhalb der Norm, dies ist nur die Idee.

+0

Diese Kombination ist nicht Interpolation. Verwenden Sie das Paket ** itertools **. – Prune

+0

Ansonsten bin ich mir überhaupt nicht sicher, was Sie zu tun versuchen. Ihr veröffentlichter Code ist nicht legal Python. – Prune

Antwort

0

Sie werden wahrscheinlich das itertools Modul verwenden müssen. Ich weiß nicht, ob dies ist, was Sie brauchen, aber ich denke, es kann Ihnen da helfen bekommen:

for r in itertools.product(['high', 'med', 'low'], repeat = 3): 
    print r 

('high', 'high', 'high') 
('high', 'high', 'med') 
('high', 'high', 'low') 
('high', 'med', 'high') 
('high', 'med', 'med') 
('high', 'med', 'low') 
('high', 'low', 'high') 
('high', 'low', 'med') 
('high', 'low', 'low') 
('med', 'high', 'high') 
('med', 'high', 'med') 
('med', 'high', 'low') 
('med', 'med', 'high') 
('med', 'med', 'med') 
('med', 'med', 'low') 
('med', 'low', 'high') 
('med', 'low', 'med') 
('med', 'low', 'low') 
('low', 'high', 'high') 
('low', 'high', 'med') 
('low', 'high', 'low') 
('low', 'med', 'high') 
('low', 'med', 'med') 
('low', 'med', 'low') 
('low', 'low', 'high') 
('low', 'low', 'med') 
('low', 'low', 'low') 
+0

Das ist genau das, was ich wollte. Danke teteu =] –

+0

Yay, froh, dass ich helfen konnte! :) –