Heim > Backend-Entwicklung > Python-Tutorial > Wie kann ich in Python effizient kartesische Produkte mehrerer Listen generieren?

Wie kann ich in Python effizient kartesische Produkte mehrerer Listen generieren?

Mary-Kate Olsen
Freigeben: 2024-12-24 16:55:21
Original
105 Leute haben es durchsucht

How Can I Efficiently Generate Cartesian Products of Multiple Lists in Python?

Kartesische Produkte aus mehreren Listen generieren

Das kartesische Produkt mehrerer Listen zu erhalten, bei dem jede mögliche Kombination von Werten erzeugt wird, ist eine gängige Praxis Aufgabe in der Programmierung. Mit itertools.product, einem leistungsstarken Python-Modul, das seit Python 2.6 verfügbar ist, können Sie dieses Ziel mühelos erreichen.

Um itertools.product zu verwenden, geben Sie einfach die Listen an, die Sie als Argumente kombinieren möchten. Zum Beispiel mit dem folgenden Satz von Listen:

somelists = [
   [1, 2, 3],
   ['a', 'b'],
   [4, 5]
]
Nach dem Login kopieren

Sie können das kartesische Produkt wie folgt erhalten:

import itertools

for element in itertools.product(*somelists):
    print(element)
Nach dem Login kopieren

Dieser Code generiert effektiv alle möglichen Kombinationen von Werten aus den Eingabelisten . Die Ausgabe wäre:

(1, 'a', 4)
(1, 'a', 5)
(1, 'b', 4)
(1, 'b', 5)
(2, 'a', 4)
(2, 'a', 5)
...
Nach dem Login kopieren

Alternativ, wenn die Listen explizit als separate Argumente übergeben würden, würde der Code so aussehen:

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

Durch Nutzung der Flexibilität von itertools.product können Sie problemlos komplexe Fälle bearbeiten, in denen die Eingabedaten aus verschachtelten Listen oder Listen mit unterschiedlicher Länge bestehen.

Das obige ist der detaillierte Inhalt vonWie kann ich in Python effizient kartesische Produkte mehrerer Listen generieren?. 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