【发布时间】:2017-05-06 08:54:13
【问题描述】:
我想将字典中值的所有组合作为多个字典(每个字典包含原始的每个键,但仅包含原始值的一个值)。假设我想参数化一个函数调用:
kwargs = {'a': [1, 2, 3], 'b': [1, 2, 3]}
如何获得所有组合的列表,如下所示:
combinations = [{'a': 1, 'b': 1}, {'a': 1, 'b': 2}, {'a': 1, 'b': 3},
{'a': 2, 'b': 1}, {'a': 2, 'b': 2}, {'a': 2, 'b': 3},
{'a': 3, 'b': 1}, {'a': 3, 'b': 2}, {'a': 3, 'b': 3}]
原始kwargs 中可以有任意数量的键,每个值都保证是可迭代的,但值的数量不固定。
如果可能:最后的 combinations 应该是生成器(而不是列表)。
【问题讨论】:
标签: python dictionary cartesian-product