Kartesisches Produkt in Python abrufen

Muhammad Waiz Khan 8 Oktober 2023
  1. Kartesisches Produkt in Python mit dem Modul itertools ermitteln
  2. Ermitteln des kartesischen Produkts in Python mit der Methode List Comprehension
  3. Kartesisches Produkt in Python mit der iterativen Methode ermitteln
Kartesisches Produkt in Python abrufen

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]]