【发布时间】:2011-07-10 20:00:14
【问题描述】:
我正在尝试编写一些代码来测试一堆输入参数的笛卡尔积。
我查看了itertools,但它的product 功能并不是我想要的。有没有一种简单明显的方法来获取具有任意数量的键和每个值中任意数量的元素的字典,然后产生具有下一个排列的字典?
输入:
options = {"number": [1,2,3], "color": ["orange","blue"] }
print list( my_product(options) )
示例输出:
[ {"number": 1, "color": "orange"},
{"number": 1, "color": "blue"},
{"number": 2, "color": "orange"},
{"number": 2, "color": "blue"},
{"number": 3, "color": "orange"},
{"number": 3, "color": "blue"}
]
【问题讨论】:
-
我很确定您不需要任何库来执行此操作,但我对 Python 的了解还不够好,无法回答。我猜想列表推导是诀窍。
-
我在问是否有现成的生成器可以很容易地适应做这样的事情。列表推导完全不相关。
标签: python generator combinatorics