Sets sind in Python eine wichtige und nützliche Datenstruktur, die es Dir ermöglicht, eine ungeordnete Sammlung einzigartiger Elemente zu speichern. Im Gegensatz zu Listen, bei denen die Elemente in einer bestimmten Reihenfolge angeordnet sind und Duplikate erlaubt sind, sind die Elemente in einem Set einzigartig und haben keine feste Reihenfolge. Ein weiterer Unterschied besteht darin, dass Sets unveränderlich sind, das heißt, ihre Elemente können nach der Erstellung nicht mehr verändert werden. Schauen wir uns einige Beispiele an:

mein_set = {1, 2, 3, 4}
print(mein_set)  # Gibt {1, 2, 3, 4} aus

Du kannst ein Set auch aus einer Liste erstellen, wobei alle Duplikate automatisch entfernt werden:

meine_liste = [1, 2, 2, 3, 4, 4, 4]
mein_set = set(meine_liste)
print(mein_set)  # Gibt {1, 2, 3, 4} aus

Sets bieten verschiedene Operationen wie Vereinigung, Schnittmenge und Differenz, die in der Praxis sehr nützlich sein können:

set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}
union = set1 | set2
print(union)  # Gibt {1, 2, 3, 4, 5, 6} aus
intersection = set1 & set2
print(intersection)  # Gibt {3, 4} aus
difference = set1 - set2
print(difference)  # Gibt {1, 2} aus

Frozen Sets sind eine weitere interessante Datenstruktur in Python. Sie sind im Grunde genommen unveränderliche Sets, das bedeutet, dass Du ihre Elemente nach der Erstellung nicht mehr ändern kannst. Das macht sie besonders nützlich, wenn Du ein Set als Element eines anderen Sets verwenden möchtest, da normale Sets aufgrund ihrer Veränderlichkeit nicht als Elemente in Sets verwendet werden können:

mein_frozen_set = frozenset([1, 2, 3])
print(mein_frozen_set)  # Gibt frozenset({1, 2, 3}) aus

Zusammenfassend sind Sets in Python eine leistungsstarke Datenstruktur, die Dir hilft, einzigartige Elemente effizient zu verwalten und Set-Operationen wie Vereinigung, Schnittmenge und Differenz durchzuführen. Frozen Sets erweitern diese Funktionalität, indem sie eine unveränderliche Version von Sets bereitstellen, die in Situationen eingesetzt werden können, in denen Unveränderlichkeit erforderlich ist.