mch*_*gun 6 python dictionary cartesian-product
我有一个列表字典:
In [72]: params
Out[72]: {'a': [1, 2, 3], 'b': [5, 6, 7, 8]}
Run Code Online (Sandbox Code Playgroud)
我可能有两个以上的键/值对.我想创建一个字典列表,它给出了对应于a
和的列表的所有可能组合b
:
例如
[{'a':1, 'b'=5},
{'a':1, 'b'=6},
{'a':1, 'b'=7},
...
{'a':3, 'b'=8},]
Run Code Online (Sandbox Code Playgroud)
我可以通过硬编码键来做到这一点:
for a,b in itertools.product(*p.itervalues()):
print {'a':a, 'b':b}
Run Code Online (Sandbox Code Playgroud)
但我不想硬编码
Jay*_*hik 12
你很亲密:
from itertools import product, izip
for i in product(*p.itervalues()):
print dict(izip(p, i))
{'a': 1, 'b': 5}
{'a': 1, 'b': 6}
...
{'a': 3, 'b': 8}
Run Code Online (Sandbox Code Playgroud)