Website-Suche

Lernen Sie die Python-Set/Frozenset-Datenstruktur – Teil 4


In diesem Teil 4 der Python-Datenstrukturreihe besprechen wir, was eine Menge ist, wie sie sich von anderen Datenstrukturen in Python unterscheidet, wie man Mengenobjekte erstellt, Mengenobjekte löscht und Methoden von Mengenobjekten .

  • Ein Set-Objekt ist eine ungeordnete Sammlung verschiedener Hash-Objekte.
  • Set entfernt automatisch doppelte Elemente aus dem Objekt.
  • Da festgelegte Objekte ungeordnet sind, wird kein Indexierungs- und Slicing-Vorgang unterstützt.

Derzeit gibt es zwei integrierte Set-Typen.

  1. set – Da es veränderbar ist, hat es keinen Hash-Wert und kann weder als Wörterbuchschlüssel noch als Element eines anderen Sets verwendet werden.
  2. frozenset – unveränderlich und hashbar – sein Inhalt kann nach der Erstellung nicht mehr geändert werden; er kann daher als Wörterbuchschlüssel oder als Element einer anderen Menge verwendet werden.

Set-Objekt konstruieren

Erstellen Sie einen Satz mit der Konstruktormethode „set()“ oder verwenden Sie geschweifte Klammern mit Komma als Trennzeichen für die Elemente „{a,b,c}“.

HINWEIS: Sie können ein Set-Objekt nicht durch leere Klammern konstruieren, da dadurch ein Wörterbuchobjekt erstellt wird.

Methoden festlegen

Verwenden Sie die integrierte Funktion „dir()“, um die verfügbaren Set-Methoden und Attribute aufzulisten.

Elemente zum Set-Objekt hinzufügen

Wie bereits erwähnt, ist set ein veränderlicher Typ. Sie können Ihr festgelegtes Objekt hinzufügen, löschen und aktualisieren, sobald es erstellt wurde.

Lassen Sie uns über die beiden Set-Methoden add und update sprechen.

  • add(elem)-Methode – Diese Methode fügt ein einzelnes Element zu einem festgelegten Objekt hinzu.
  • update(*others)-Methode – Diese Methode fügt einem festgelegten Objekt mehrere Elemente hinzu. Sie können veränderliche/unveränderliche Objekte als Argument in der Update-Methode übergeben.

HINWEIS: Duplikate werden automatisch entfernt.

Elemente aus einem festgelegten Objekt entfernen/löschen

Wie Sie bereits in anderen Datenstrukturthemen (Liste, Tupel, Wörterbuch) gesehen haben, können Sie für set auch das integrierte Schlüsselwort „del“ verwenden, um das set-Objekt aus dem Namespace (d. h. ) zu löschen Speicher).

Nachfolgend finden Sie die Methoden zum Festlegen von Objekten zum Entfernen von Elementen.

  • clear() – Löscht alle Elemente und macht die Menge leer. Diese clear()-Methode ist in anderen Datenstrukturen verfügbar, die die gleiche Funktionalität bieten.
  • pop() – Entfernt beliebige Elemente.
  • discard(elem) – Wenn das Element nicht im festgelegten Objekt gefunden wird, löst die Methode „discard()“ keinen Fehler aus.
  • remove(elem) – Dasselbe wie die Methode „discard()“, aber sie löst KeyError aus, wenn ein Element nicht gefunden wird.

Operationen festlegen

Set bietet Methoden zur Durchführung mathematischer Operationen wie Schnittmenge, Vereinigung, Differenz und symmetrische Differenz. Erinnern Sie sich an das „Venn-Diagramm“ aus Ihrer Schulzeit?

Wir werden uns die folgenden Methoden zur Durchführung mathematischer Operationen ansehen.

  • Union
  • Überschneidung
  • Kreuzung_Update
  • symmetrische_Differenz
  • symmetric_difference_update
  • Unterschied
  • Differenz_Update
  • ist disjunkt
  • issubset
  • ist eine Obermenge

Vereinigung, Schnittmenge, Differenz, symmetrische_Differenz

  • union(*other) – Gibt eine neue Menge mit Elementen aus der Menge und allen anderen zurück.
  • intersection(*other) – Gibt eine neue Menge mit Elementen zurück, die der Menge und allen anderen gemeinsam sind.
  • difference(*others) – Gibt eine neue Menge mit Elementen in der Menge zurück, die nicht in den anderen enthalten sind.
  • symmetric_difference(other) – Gibt eine neue Menge mit Elementen entweder in der Menge oder in der anderen, aber nicht in beiden zurück.

Kreuzung_Update

intersection_update(*others) – Aktualisiert den Satz und behält nur die darin gefundenen Elemente und alle anderen bei.

Differenzaktualisierung

difference_update(*others) – Aktualisiert den Satz und behält nur die darin und alle anderen Elemente bei.

Symmetric_Difference_Update

symmetric_difference_update(other) – Aktualisiert den Satz und behält nur die in einem Satz gefundenen Elemente bei, aber nicht in beiden.

Isdisjoint, Issubset, Issuperset

  • isdisjoint(other) – Gibt „True“ zurück, wenn die Menge keine gemeinsamen Elemente mit „other“ hat. Mengen sind genau dann disjunkt, wenn ihr Schnittpunkt die leere Menge ist.
  • issubset() – Testen Sie, ob sich jedes Element in der Menge in einem anderen befindet.
  • issuperset() – Testen Sie, ob jedes Element im anderen Element in der Menge enthalten ist.

Copy()-Methode

Mit der Methode copy() können Sie eine identische Kopie des vorhandenen Set-Objekts erstellen. Diese Methode ist auch für andere Datenstrukturtypen wie Liste, Wörterbuch usw. verfügbar.

Löschen Sie das festgelegte Objekt mithilfe des integrierten Schlüsselworts „del“ aus dem Namespace.

Gefrorenes Set

  • Das eingefrorene Set ist vom unveränderlichen Typ. Nach der Erstellung können Sie der Liste keine Elemente mehr hinzufügen, entfernen oder aktualisieren.
  • Da eingefrorene Mengen unveränderlich sind, sind sie hashbar und können als „Schlüssel“ für Wörterbücher oder Elemente für ein anderes Mengenobjekt verwendet werden.
  • Der eingefrorene Satz wird mit der Funktion „frozenset()“ erstellt.
  • Frozen Set bietet im Vergleich zu „Set“ den gleichen Satz an Methoden wie Union(), Intersection, Copy(), Isdisjoint() usw.

Zusammenfassung

In diesem Artikel haben Sie gesehen, was ein Set ist, den Unterschied zwischen einem Set und einem eingefrorenen Set, wie man Set-Elemente erstellt und darauf zugreift, Set-Methoden usw.