Kartesisches Produkt in Python abrufen
-
Kartesisches Produkt in Python mit dem Modul
itertools
ermitteln - Ermitteln des kartesischen Produkts in Python mit der Methode List Comprehension
- Kartesisches Produkt in Python mit der iterativen Methode ermitteln
In diesem Tutorial lernen wir verschiedene Methoden kennen, um das kartesische Produkt einer Liste in Python zu erhalten. Das kartesische Produkt zweier Mengen ist eine Menge aller möglichen geordneten Paare mit dem ersten Element jedes geordneten Paares aus der ersten Menge und dem zweiten Element aus der zweiten Menge.
Wir können das kartesische Produkt von Sätzen finden, die als 2D-Liste gespeichert sind, indem wir die folgenden Methoden in Python verwenden.
Kartesisches Produkt in Python mit dem Modul itertools
ermitteln
Die Methode product(*iterables, repeat=1)
des Moduls itertools
nimmt iterables
als Eingabe und gibt ihr kartesisches Produkt als Ausgabe zurück. Die kartesische Produktreihenfolge ist die Reihenfolge jeder Menge/Liste im angegebenen Argument iterables
. Das optionale Schlüsselwortargument repeat
gibt an, wie oft wir das Produkt mit der Eingabe iterables
wiederholen möchten. Und das *
wird verwendet, um das Argument iterables
zu entpacken.
Der folgende Beispielcode zeigt, wie man das kartesische Produkt in Python mit der Methode itertools.product()
erhält.
from itertools import product
mylists = [["a", "b"], [1, 2]]
for elem in product(*mylists):
print(elem)
Ausgabe:
('a', 1)
('a', 2)
('b', 1)
('b', 2)
Ermitteln des kartesischen Produkts in Python mit der Methode List Comprehension
Wir können die Methode des List Comprehensionsses verwenden, um das kartesische Produkt der Listen zu erhalten, wenn die Gesamtzahl der Listen bekannt ist.
Wenn wir die Anzahl der Listen kennen oder die Anzahl der Listen fest ist, müssen wir jedes Listenelement mit der for
-Schleife durchlaufen, um ihr kartesisches Produkt zu erhalten.
Der folgende Beispielcode zeigt, wie Sie die List Comprehensionsmethode in Python verwenden, um das kartesische Produkt der Liste abzurufen.
mylists = [["a", "b"], [1, 2]]
crt_prd = [(x, y) for x in mylists[0] for y in mylists[1]]
print(crt_prd)
Ausgabe:
[('a', 1), ('a', 2), ('b', 1), ('b', 2)]
Kartesisches Produkt in Python mit der iterativen Methode ermitteln
Eine andere Möglichkeit, das kartesische Produkt in Python zu erhalten, besteht darin, den iterativen Ansatz der for
-Schleife zu verwenden. Dies ist ein besserer Ansatz als das oben verwendete List Comprehensions, da wir uns bei dieser Methode nicht um die Anzahl der Listen oder Sets für das kartesische Produkt kümmern müssen.
Anstatt auf jedes Element jeder Liste zuzugreifen, verwenden wir daher einen iterativen Ansatz. Der folgende Beispielcode zeigt, wie Sie das kartesische Produkt in Python mithilfe der iterativen Methode finden.
def get_cart_prd(pools):
result = [[]]
for pool in pools:
result = [x + [y] for x in result for y in pool]
return result
mylists = [["a", "b"], [1, 2, 3]]
print(get_cart_prd(mylists))
Ausgabe:
[['a', 1], ['a', 2], ['a', 3], ['b', 1], ['b', 2], ['b', 3]]