Декартово произведение словаря списков

Я пытаюсь написать код, чтобы проверить декартово произведение набора входных параметров.

Я просмотрел 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"}
]
52
задан Seth Johnson 7 March 2011 в 18:19
поделиться