Heim > Backend-Entwicklung > Python-Tutorial > Wie kann ich das kartesische Produkt von Listen in Python effizient berechnen?

Wie kann ich das kartesische Produkt von Listen in Python effizient berechnen?

Linda Hamilton
Freigeben: 2024-12-29 12:09:11
Original
229 Leute haben es durchsucht

How Can I Efficiently Compute the Cartesian Product of Lists in Python?

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]
]
Nach dem Login kopieren

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), ...]
Nach dem Login kopieren

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)
Nach dem Login kopieren

Alternativ können Sie jede Sequenz explizit als Argument angeben:

for element in itertools.product([1, 2, 3], ['a', 'b'], [4, 5]):
    print(element)
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage