我試圖編寫一些代碼來測試一堆輸入參數的笛卡爾乘積。列表字典的笛卡爾積
我看過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