Berechnung des kartesischen Produkts von Listen
Das Erhalten des kartesischen Produkts oder aller möglichen Wertekombinationen aus mehreren Listen stellt eine häufige Herausforderung dar Programmierung. Betrachten Sie das Beispiel einer Liste von Listen:
somelists = [ [1, 2, 3], ['a', 'b'], [4, 5] ]
Die ideale Ausgabe:
Das gesuchte Ergebnis ist eine einzelne Liste, die jede mögliche Kombination von Werten aus dem enthält Eingabelisten:
[(1, 'a', 4), (1, 'a', 5), (1, 'b', 4), (1, 'b', 5), (2, 'a', 4), (2, 'a', 5), ...]
Die Pythonic-Lösung: itertools.product
Die Python-Standardbibliothek bietet ein leistungsstarkes Werkzeug für diese Aufgabe: itertools.product. Diese Funktion ist seit Python 2.6 verfügbar und erwartet die Eingabesequenzen als separate Argumente.
import itertools for element in itertools.product(*somelists): print(element)
Alternativ können Sie jede Sequenz explizit als Argument angeben:
for element in itertools.product([1, 2, 3], ['a', 'b'], [4, 5]): print(element)
itertools.product wird zurückgegeben ein Generatorobjekt, das jede Kombination als Tupel liefert. Um die gewünschte Liste zu erhalten, können Sie über den Generator iterieren und bei Bedarf jedes Tupel in eine Liste konvertieren.
Durch die Verwendung von itertools.product können Sie das kartesische Produkt mehrerer Listen effizient berechnen und so die Notwendigkeit einer Verschachtelung vermeiden Schleifen und Gewährleistung einer prägnanten und lesbaren Lösung für diese häufige Programmierherausforderung.
Das obige ist der detaillierte Inhalt vonWie kann ich das kartesische Produkt von Listen in Python effizient berechnen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!