排列或组合数据python

时间:2017-04-25 20:25:15

标签: python django-views

我从数据库中获取某些日期并将其转换为词典,例如:

{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:字典数和变量数可能不同。

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

1 个答案:

答案 0 :(得分: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')