字典值的所有组合
options = {
"x": ["a", "b"],
"y": [10, 20, 30]
}
给定诸如上面所示的字典之类的字典,其中存在表示要针对相应密钥探索的一组值的列表。假设你想要使用 "y"=10
探测 "x"="a"
,然后使用 "x"="a"
with"y"=10
,依此类推,直到你探索了所有可能的组合。
你可以使用以下代码创建一个返回所有此类值组合的列表。
import itertools
options = {
"x": ["a", "b"],
"y": [10, 20, 30]}
keys = options.keys()
values = (options[key] for key in keys)
combinations = [dict(zip(keys, combination)) for combination in itertools.product(*values)]
print combinations
这给我们存储在变量 combinations
中的以下列表:
[{'x': 'a', 'y': 10},
{'x': 'b', 'y': 10},
{'x': 'a', 'y': 20},
{'x': 'b', 'y': 20},
{'x': 'a', 'y': 30},
{'x': 'b', 'y': 30}]