Das kartesische Produkt von a dictionary of Listen

Ich versuche, code zu schreiben, zu testen, das kartesische Produkt von einer Reihe von Eingangsparametern.

Habe ich mir angeschaut itertools, aber seine product Funktion ist nicht genau das, was ich will. Gibt es einen einfachen, offensichtlichen Weg, um ein Wörterbuch mit einer beliebigen Anzahl von Schlüssel und eine beliebige Anzahl von Elementen in jedem Wert, und dann liefern Sie ein Wörterbuch mit der nächsten permutation?

Eingang:

options = {"number": [1,2,3], "color": ["orange","blue"] }
print list( my_product(options) )

Beispiel-Ausgabe:

[ {"number": 1, "color": "orange"},
  {"number": 1, "color": "blue"},
  {"number": 2, "color": "orange"},
  {"number": 2, "color": "blue"},
  {"number": 3, "color": "orange"},
  {"number": 3, "color": "blue"}
]
  • Ich bin mir ziemlich sicher, Sie brauchen keine Bibliothek, dies zu tun, aber ich weiß nicht, Python ganz gut genug zu beantworten. Ich denke, die Liste Verstehens sind der trick.
  • Ich Frage, ob gibt es eine ready-made-generator, der leicht angepasst werden kann, so etwas zu tun. Liste Verstehens sind überhaupt nicht relevant.
InformationsquelleAutor Seth Johnson | 2011-03-08
Schreibe einen Kommentar