字典值的所有組合
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}]