python-列表字典的笛卡尔积
我正在尝试编写一些代码来测试一堆输入参数的笛卡尔积。
我看过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"}
]
4个解决方案
49 votes
好的,谢谢@dfan告诉我我在错误的地方看。 我现在知道了:
from itertools import product
def my_product(inp):
return (dict(z