So verwenden Sie Frozenset -Objekte in Python

So verwenden Sie Frozenset -Objekte in Python

In diesem Artikel wird eine Anleitung zur Verwendung der Funktion „Frezenset“ in Python behandelt, die ein neues Python -Objekt von Frezenset Typ zurückgibt. Diese Objekte ähneln den in Python verfügbaren Objekte mit einigen wichtigen Unterschieden. Alle Codeproben in diesem Artikel werden mit Python 3 getestet.9.5 auf Ubuntu 21.04.

Über Frodensets

Der Frozenset -Funktion Nimmt ein Argument eines iterablen Python -Objekts ein und gibt ein neues Python -Objekt vom Frozenset -Typ zurück. Ein Frozenset -Objekt ist ein Hashable und unveränderliches Python -Objekt, dessen Elemente während ihres gesamten Lebens gefroren oder unveränderlich sind. Im Gegensatz zu einem festgelegten Python -Objekt, dessen Elemente jederzeit geändert werden können, bleiben alle Elemente in einem Frozenset konstant. Die Verwendung von Frezensets kann am besten anhand von Beispielen verstanden werden. Einige von ihnen werden unten erklärt.

Erstellen eines neuen Frozenset -Objekts

Um eine neue zu bekommen Frozenset Typ -Objekt, Geben Sie einfach einen iterablen Typ als optionales Argument für die Frezenset -Funktion an. Hier ist ein Code -Beispiel:

L = [1, 2, 3, 4]
FSET = FROZENSET (L)
drucken (fset)
Druck (Typ (FSET))

Die erste Anweisung im Code definiert eine neue Liste, die einfach "L" bezeichnet wird. Als nächstes eine neue Frozenset Das Objekt wird erstellt, indem die Frezenset -Funktion aufgerufen und die Liste als Argument angegeben wird. Nachdem Sie das obige Code -Beispiel ausgeführt haben, sollten Sie die folgende Ausgabe erhalten:

Frezenset (1, 2, 3, 4)

Wie Sie im Ausgang sehen können, ist FSET a Frozenset Geben Sie das Objekt ein und verwendet die Syntax der Curly Braces, die auch in Python verwendet werden, auch von Sätzen. Frovensets Enthalten einzigartig. Jeden Frozenset Das Typobjekt ist ein Python -Set, aber umgekehrt ist nicht wahr, da die festgelegten Elemente durch Aufrufen einiger Methoden geändert werden können. Beachten Sie, dass Sie eine leere erstellen können Frozenset durch Anruf die Frozenset Funktion ohne Argument.

Sie können einen Frozenset nach dem Erstellen nicht ändern

Wie bereits erwähnt, a Frozenset Das Typ -Objekt hat Elemente, die sich während ihres Lebens nicht ändern. Während Sie Methoden verwenden können, die für Python -Sets mit Objekten vom Typ Frozenset -Typ verfügbar sind, wird ein Fehler geworfen, wenn Sie versuchen, eine Methode zu verwenden, die das Original ändert Frozenset Objekt selbst. Hier ist ein Beispiel:

L = [1, 2, 3, 4]
new_set = set (l)
new_set.entfernen (1)
print (new_set)
FSET = FROZENSET (L)
FSET.entfernen (1)

In der obigen Code -Stichprobe gibt es zwei Anweisungen, bei denen die “entfernenDie Methode der Set -Typ -Objekte wird aufgerufen. Während ein Gegenstand erfolgreich entfernt wird “new_set„Ein Fehler wird geworfen, wenn die Entfernungsmethode aufgerufen wird“FSET“. Nachdem Sie das obige Code -Beispiel ausgeführt haben, sollten Sie die folgende Ausgabe erhalten:

2, 3, 4
Traceback (letzte Anruflast):
Datei "Main.py ", Zeile 9, in
FSET.entfernen (1)
AttributeError: 'Frozenset' -Objekt hat kein Attribut 'entfernen'

Andere ähnliche Methoden wie "Add", "Pop", "Clear", "Defard" usw. funktionieren nicht mit Forzensets.

Methoden, die mit Frezensets funktionieren

Alle Python -Set -Methoden, mit denen die Elemente eines Satzes nicht geändert werden Frozenset Geben Sie Objekte ein. Sie können also zwei Frozensets für Gleichheiten oder Ungleichheiten vergleichen, sie durch sie iterieren / schleifen, gemeinsame oder einzigartige Elemente zwischen zwei Frodensets usw. erhalten und so weiter. Im Folgenden finden Sie ein Beispiel, das einige der Methoden zeigt, die mit Frezensets funktionieren.

FSET1 = FROZENSET ([1, 2, 3, 4])
FSET2 = FROZENSET ([3, 4, 5, 6])
drucken (FSET1.Kreuzung (FSET2))
drucken (FSET1.Union (FSET2))
drucken (FSET1.Differenz (FSET2))
Druck (Len (FSET1))
Druck (Len (FSET2))

Der Code ist selbsterklärend. Einige Methoden, die die Werte des Originals nicht ändern Frovensets wurden gerufen. Diese Methoden wurden hauptsächlich zum Vergleich von Elementen von zwei verschiedenen verwendet Frovensets. Nachdem Sie das obige Code -Beispiel ausgeführt haben, sollten Sie die folgende Ausgabe erhalten:

Frezenset (3, 4)
Frozenset (1, 2, 3, 4, 5, 6)
Frezenset (1, 2)
4
4

Einige der anderen Methoden, die mit gefrorenen Sätzen arbeiten. Gleichstellungsoperatoren mögen ">", "=" und ""<=” also work with frozenset type objects.

Frovensets können in andere iterable Typen umgewandelt werden

Sie können konvertieren Frozenset Geben Sie Objekte in andere Iterables ein, indem Sie ihren Hauptkonstruktor aufrufen. Die nachstehende Codeprobe zeigt die Konvertierung von Frozenset Geben Sie Objekte ein, um Typobjekte aufzulisten, zu tupeln und festzulegen.

FSET = FROZENSET ([1, 2, 3, 4])
Druck (Liste (FSET))
Druck (Tupel (FSET))
print (set (fset))

Nachdem Sie das obige Code -Beispiel ausgeführt haben, sollten Sie die folgende Ausgabe erhalten:

[1, 2, 3, 4]
(1, 2, 3, 4)
1, 2, 3, 4

Frezenset -Anwendungsfälle

Als Frozenset Objekte sind nichts anderes als unveränderliche / unveränderliche Set -Typ -Python -Objekte. Möglicherweise wundern Sie sich über ihren Nutzen, da Sets immer an ihrer Stelle verwendet werden können. Der offensichtlichste Anwendungsfall von Frovensets ist zur Deklaration von Set -Typ -Objekten mit einzigartigen Elementen, ohne dass das Risiko, sie später im Code versehentlich zu ändern, versehentlich zu ändern. Frozenset Typobjekte können als Wörterbuchschlüssel verwendet werden, während Sets nicht für denselben Zweck verwendet werden können. Da Frezensets hashabel sind, können sie in Sets verwendet werden, während Sets nicht in einen anderen Satz eingefügt werden können. Schauen Sie sich den folgenden Code an:

FSET = FROZENSET (4, 5)
s = 1, 2, fset
Druck (en)
S = 1, 2, 4, 5

In der zweiten Aussage a Frozenset wurde zu einem Satz während der Erstellung hinzugefügt. In der letzten Anweisung wird in einem anderen Satz ein Set -Typ -Objekt verwendet. Nachdem Sie das obige Code -Beispiel ausgeführt haben, sollten Sie die folgende Ausgabe erhalten:

Frozenset (4, 5), 1, 2
Traceback (letzte Anruflast):
Datei "Main.py ", Zeile 27, in
S = 1, 2, 4, 5
TypeError: Rückgierbarer Typ: 'Set'

Wie Sie in der Ausgabe sehen können, Forzensets kann zu anderen Sätzen hinzugefügt werden. Auf der anderen Seite wirft das Hinzufügen eines Sets zu einem anderen Satz einen Fehler aus.

Abschluss

Frovensets Bieten Sie eine Möglichkeit, unveränderliche Sets zu erstellen. Sie akzeptieren nur einzigartige Elemente und sind Hashable -Objekte, sodass sie in anderen Python -Objekten verwendet werden können.