如何使用每个值的范围从字典中获取所有可能的组合

时间:2017-05-08 15:44:32

标签: python dictionary

我如何从字典中元组给出的范围中创建此字典中的所有可能组合?

def createCombo(self):
    usedAtoms = {'C':(0,100),'H':(0,200),'O':(0,4),'N':(0,4),'S':(0,4)}

    MolecularFormula.combinations(self, usedAtoms)

def combinations(self,dicts):

    product = [x for x in apply(itertools.product, dicts.values())]
    print [dict(zip(dicts.keys(), p)) for p in product]

1 个答案:

答案 0 :(得分:1)

现在在python中不推荐使用

apply,使用*扩展参数列表,例如。

apply(itertools.product, dicts.values())

变为

itertools.product(*dicts.values())

对于您的问题,请将dicts.values()替换为:

[range(*pair) for pair in dicts.values()]