Geordnetes Set in Python erstellen
Dieses Tutorial behandelt die Klasse OrderedSet
in Python.
Erstellen Sie geordnete Mengen mit der Klasse OrderedSet
in Python
Lassen Sie uns zunächst definieren, was eine Menge in Python bedeutet. Es ist eine wohldefinierte Sammlung von unterschiedlichen Objekten, die irgendwie miteinander verbunden sind. Diese Definition enthält keine Reihenfolge. Per Definition hat eine Menge also keine Ordnung in sich.
Wenn jedoch ein solches Szenario eintritt, dass wir die ursprüngliche Reihenfolge der Mengenelemente beibehalten müssen, können wir die Klasse OrderedSet
verwenden. Um die OrderedSet
-Klasse zu verwenden, müssen wir zuerst das ordered-set
-Paket mit dem Python-Paketmanager auf unserem Gerät installieren. Der Befehl zur Installation des Pakets ordered-set
ist unten aufgeführt.
pip install ordered-set
Jetzt können wir ein Set erstellen, das die Reihenfolge jedes Set-Elements beibehält. Dieser Vorgang wird im folgenden Programm demonstriert.
from ordered_set import OrderedSet
setABC = OrderedSet(["A", "B", "C"])
print(setABC)
Ausgabe:
OrderedSet(['A', 'B', 'C'])
Wir haben ein geordnetes Set erstellt und den Wert bei jedem Index der Reihe nach mit der Klasse OrderedSet
im obigen Code angezeigt. Dieses OrderedSet
ist eine veränderbare Datenstruktur, die eine Mischung aus Listen- und Mengendatenstruktur darstellt. Also müssen wir dieses Set mit einer Liste initialisieren; Auf diese Weise behält das Set den Index jedes Elements.
Um die Indizierung zu vereinfachen, gibt die Funktion add()
den Index des neu hinzugefügten Elements zurück; dies wird im folgenden Prozess unten gezeigt.
print(setABC.add("D"))
Ausgabe:
3
Wir haben unserem setABC
ein weiteres Element hinzugefügt und den von der Funktion add()
zurückgegebenen Wert im obigen Code angezeigt. Wir können den Index eines bestimmten Elements auch mit der Funktion index()
abrufen; dies wird im folgenden Codeausschnitt gezeigt.
print(setABC.index("C"))
Ausgabe:
2
Wir haben den Index des Elements C
innerhalb des setABC
-Sets mit der Funktion index()
im obigen Code abgerufen. Wir können auch die üblichen Operationen von Mengen wie Vereinigung, Schnitt und Differenz an diesen geordneten Mengen mit den Operatoren |
, &
bzw. -
durchführen.
Das folgende Codebeispiel zeigt, wie wir eine Vereinigung für eine geordnete Menge ausführen können.
from ordered_set import OrderedSet
setABC = OrderedSet(["A", "B", "C", "D"])
setDEF = OrderedSet(["D", "E", "F", "G"])
solutionSet = setABC | setDEF
print(solutionSet)
Ausgabe:
OrderedSet(['A', 'B', 'C', 'D', 'E', 'F', 'G'])
Wir haben die Vereinigung der Mengen setABC
und setDEF
mit dem Vereinigungsoperator |
berechnet. im Code oben. Das folgende Programm unten zeigt uns, wie wir eine Schnittmenge auf einer geordneten Menge durchführen können.
from ordered_set import OrderedSet
setABC = OrderedSet(["A", "B", "C", "D"])
setDEF = OrderedSet(["D", "E", "F", "G"])
solutionSet = setABC & setDEF
print(solutionSet)
Ausgabe:
OrderedSet(['D'])
Wir haben den Schnitt der Mengen setABC
und setDEF
mit dem Schnittoperator &
im obigen Code berechnet. Das folgende Codebeispiel unten zeigt uns, wie wir die Differenz zwischen zwei geordneten Mengen berechnen können.
from ordered_set import OrderedSet
setABC = OrderedSet(["A", "B", "C", "D"])
setDEF = OrderedSet(["D", "E", "F", "G"])
solutionSet = setABC - setDEF
print(solutionSet)
Ausgabe:
OrderedSet(['A', 'B', 'C'])
Wir haben die Differenz der Mengen setABC
und setDEF
mit dem Differenzoperator -
im obigen Code berechnet.
Standardmäßig unterstützt Python keine geordneten Mengen. Wir können jedoch ein externes Paket installieren, ordered-set
, das uns die Funktionalität bietet, geordnete Sets zu erstellen. Dieser Vorgang wird ab Python-Version 2.6 unterstützt.
Diese geordneten Mengen sind eine Mischung aus den ursprünglichen Listen und Mengen in Python. Also müssen wir diese Mengen mit einer Liste initialisieren. Diese neuen Mengen bieten uns alle üblichen Funktionalitäten von Mengen wie Vereinigung, Schnittmenge und Differenz.
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
LinkedIn