我试图编写一些代码来测试一堆输入参数的笛卡尔乘积。列表字典的笛卡尔积
我看过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足够好地回答。我猜想列表理解是个诀窍。 – 2011-03-08 04:00:31
我在问是否有现成的发电机,可以很容易地适应做这样的事情。列表理解并不重要。 – 2011-03-08 04:02:08