Heim > Backend-Entwicklung > Python-Tutorial > Wie kann itertools.product das kartesische Produkt mehrerer Listen in Python generieren?

Wie kann itertools.product das kartesische Produkt mehrerer Listen in Python generieren?

Susan Sarandon
Freigeben: 2025-01-04 12:23:38
Original
329 Leute haben es durchsucht

How Can itertools.product Generate the Cartesian Product of Multiple Lists in Python?

Kartesisches Produkt mehrerer Listen mit itertools.product

Um das kartesische Produkt einer Gruppe von Listen zu erhalten, in denen jede mögliche Kombination von Werten enthalten ist generiert wird, verwenden Sie die integrierte Funktion itertools.product. Diese Funktion ist seit Version 2.6 in Python enthalten.

Implementierung:

import itertools

somelists = [
   [1, 2, 3],
   ['a', 'b'],
   [4, 5]
]

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

Alternativ können Sie der Funktion separate Argumente wie folgt bereitstellen:

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

Beide Ansätze führen zum Gleichen Ausgabe:

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

Hinweis:

  • Diese Technik wird häufig verwendet, um tief verschachtelte Schleifen zu vermeiden.
  • Wenn Sie den kartesischen Wert benötigen Produkt derselben Liste mit sich selbst multipliziert, erwägen Sie die Verwendung von itertools.product mit mit * entpackten Argumenten.
  • Die Verwendung von * zum Entpacken von Argumenten unterscheidet sich in diesem Zusammenhang nicht von seiner typischen Verwendung in Funktionsaufrufen.

Das obige ist der detaillierte Inhalt vonWie kann itertools.product das kartesische Produkt mehrerer Listen in Python 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