2017-04-25 64 views
0

我从我的数据库萨姆日期,并把他们的词典,例如:排列或组合数据蟒蛇

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

在我的问题,我需要插值这个变量,并作为最终结果,我想:

{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} 

任何人都有一些想法如何做到这一点?

注意I:词典的数量和变量的数量可能不同。

注意二:代码不符合标准,这只是想法。

+0

这是组合,而不是插值。使用** itertools **包。 – Prune

+0

除此之外,我完全不知道你在做什么。您发布的代码不是合法的Python。 – Prune

回答

0

您可能需要使用itertools模块。 我不知道这是你需要什么,但我认为它可以帮助你到达那里:

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

这正是我想要的。谢谢teteu =] –

+0

耶,很高兴我能帮忙! :) –