Erstellen einen Satz von Sätzen in Python
Als Programmierer sollte man sich mit Datenstrukturen gut auskennen. In der Informatik gibt es viele Datenstrukturen, aus denen Arrays und Mengen sehr einfach zu verstehen sind. Da es in diesem Artikel nicht um Datenstrukturen geht, werden wir nicht tief in sie eintauchen, sondern speziell über Sets sprechen.
In Python können wir ein Array von Arrays oder eine Liste von Listen erstellen. Dies gilt jedoch nicht für Sets. Wir können in Python keine Menge von Mengen erstellen. Glaubst du das nicht? Versuchen Sie den folgenden Code.
print({{1, 2}, {2, 3}})
Der obige Code löst einen Fehler aus, der wie folgt aussieht.
Traceback (most recent call last):
File "<string>", line 1, in <module>
TypeError: unhashable type: 'set'
Da Sets veränderlich sind, können sie nicht gehasht werden. Da eine Menge hashfähige Werte benötigt, um die Eindeutigkeit zu wahren und doppelte Werte abzulehnen, können wir auf diese Weise keine Menge von Mengen erstellen. Stattdessen müssen wir verschiedene Ansätze verfolgen.
Mutable bedeutet, dass der Inhalt der Datenstruktur geändert werden kann, während unveränderlich bedeutet, dass der Inhalt der Datenstruktur nicht geändert werden kann. Einige Beispiele für veränderbare Datenstrukturen sind Listen
, sets
und dictionaries
. Einige Beispiele für unveränderliche Datenstrukturen sind strings
, frozenset
und Tupel
.
Hashable bedeutet, dass die Datenstruktur als eindeutiger String im Speicher dargestellt werden kann, während nicht hashbar bedeutet, dass die Datenstruktur nicht als eindeutiger String im Speicher dargestellt werden kann.
Set von Sets erstellen mit frozenset
in Python
frozenset
ist eine in Python vorgefertigte Art von Set. Ein frozenset
und ein set
führen die gleiche Funktion aus: einzigartige Werte speichern und doppelte Werte, die ihnen hinzugefügt wurden, zurückweisen. Jedoch ist ein frozenset
unveränderlich und hashbar, während ein ‘Set’ veränderbar und nicht hashbar ist. Da ein frozenset
unveränderlich ist, kann es als Schlüssel in einem Dictionary verwendet und in einem set
gespeichert werden, da ein set
nur unveränderliche Werte speichern kann. Lassen Sie uns dies mit etwas Python-Code besser verstehen.
a = set([frozenset([1, 2]), frozenset([2, 3]), frozenset([3, 4])])
print(a)
Die Ausgabe des obigen Codes ist wie folgt.
{frozenset({3, 4}), frozenset({2, 3}), frozenset({1, 2})}
Weitere Informationen zu frozenset
finden Sie in der offiziellen Python-Dokumentation hier.