我如何从字典中元组给出的范围中创建此字典中的所有可能组合?
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]
答案 0 :(得分:1)
apply
,使用*
扩展参数列表,例如。
apply(itertools.product, dicts.values())
变为
itertools.product(*dicts.values())
对于您的问题,请将dicts.values()
替换为:
[range(*pair) for pair in dicts.values()]