Ein Set ist eine Datenstruktur in Python, mit der man mehrere Werte abspeichern kann, nur kommen hier keine Werte doppelt vor.

Sets in Python kann man mit Mengen in der Mathematik vergleichen. Sie beinhalten mehrere Werte und keiner dieser Werte kommt doppelt vor. Sets werden in Python mit Hilfe von geschweiften Klammern geschrieben:
ein_set = {1, 2, 3} 

Wir können auch verschiedene Datentypen abspeichern. Das heißt im Klartext, wir könnten in ein Set Zahlen, Wörter, oder auch weitere Sets abspeichern. Hier ein Beispiel:

ein_set = {1, 2, {5, 6}, "Käsekuchen"} 

Eigenschaften von Sets

  1. Elemente können nicht mehrfach in einem Set auftreten
  2. Sets sind ungeordnet – das heißt, jedes Mal wenn man das Set benutzt, kann es vorkommen, dass es in einer anderen Reihenfolge verwendet wird als beim letzten Mal. Man kann ebenfalls nicht auf bestimmte Einträge zugreifen wie bei Listen mit Indizes – diese gibt es hier nicht.
  3. Die Inhalte eines Sets können nicht ausgetauscht werden, es können nur neue Elemente hinzugefügt oder bestehende Elemente gelöscht werden.
Schauen wir uns diese Eigenschaften genauer an.

1. Elemente können nicht mehrfach in einem Set auftreten

Versucht man ein Set zu erstellen, in dem das gleiche Element mehrfach vorkommt, so wird dieses Element nur einmal genommen.

ein_set = {1,2,3,1}
print(ein_set)

### Output:
>>> {1,2,3} 

Wenn wir versuchen zwei Mal den Wert 1 in das Set reinzuschreiben und dieses dann ausgeben, bemerken wir, dass die Zahl 1 nur einmal vorkommt im Set.

2. Sets sind ungeordnet

Sets sind ungeordnet, das heißt, es ist nicht garantiert, dass die Reihenfolge innerhalb des Sets immer gleich ist.

ein_set = {"apfel", "birne", "käsekuchen"}
print(ein_set)

### Output:
>>> {"apfel", "birne", "käsekuchen"} 

Wenn wir den print-Befehl beim ersten Mal ausführen, ist die Reihenfolge apfel – birne – käsekuchen. Führen wir es ein zweites Mal aus, kann es aber vorkommen, dass das Set plötzlich in einer anderen Reihenfolge ist wie zum Beispiel käsekuchen – apfel – birne!

ein_set = {"apfel", "birne", "käsekuchen"}
print(ein_set)
print(ein_set)
print(ein_set)

### Output:
>>> {"käsekuchen","birne", "apfel"}
>>> {"käsekuchen","apfel", "birne"}
>>> {"birne","käsekuchen", "apfel"} 

3. Inhalte eines Sets können nicht ausgetauscht werden

Leider kann man in Sets keine Werte einfach austauschen. Wir müssen hierfür den Wert, den wir nicht mehr haben wollen aus dem Set entfernen mit Hilfe der remove() Funktion und danach den neuen Wert hinzufügen mit Hilfe der add() Funktion.

x = {1,3}

x.remove(1)
print(x)

x.add(2)
print(x)

### Output:
>>> {3}
>>> {2,3} 

Funktionen eines Sets

Werte zu Sets hinzufügen

Um Werte in Python Sets einzufügen, gibt es zwei Möglichkeiten:

  1. add(Wert) um einen einzelnen Wert hinzuzufügen
  2. update(Wert) um mehrere Werte hinzuzufügen
mein_set = {1, 3}

mein_set.add(2)
print(mein_set)

mein_set.update([2, 3, 4])
print(mein_set)

### Output:
>>> {1,2,3}
>>> {1,2,3,4} 

Werte aus Sets entfernen

Um Werte aus Sets zu entfernen, gibt es zwei Möglichkeiten:

  1. remove(Wert) wirft eine Fehlermeldung aus, wenn der Wert nicht im Set enthalten ist.
  2. discard(Wert) macht nichts, wenn der Wert nicht im Set enthalten ist.

Je nach Anwendung kann der eine oder andere Befehl sinnvoller sein.

mein_set = {1,2,3,4,5}
mein_set.remove(5)
print(mein_set)

mein_set.discard(4)
print(mein_set)

mein_set.discard(5)
print(mein_set)

mein_set.remove(5)
print(mein_set)

### Output:
>>> {1,2,3,4}
>>> {1,2,3}
>>> {1,2,3}
>>> KeyError: 5 

Listen oder Tupel zu Sets umwandeln

Mit Hilfe der in-built set() Funktion kann man auch Listen und Tupeln zu Sets machen.

Beachte: Falls in der Liste oder im Tupel Elemente mehrfach vorkommen, werden diese im Set entfernt!

meine_liste = ["test", 123]
mein_set = set(meine_liste)
print(mein_set)

mein_tupel = ("test", 123)
mein_set = set(mein_tupel)
print(mein_set)

### Output:
>>> {"test", 123}
>>> {"test", 123} 

Anzahl von Elementen in einem Set ausgeben

Die Länge, also die Anzahl von Elementen, eines Sets kann man mit Hilfe der len() Funktion bestimmen.

mein_set = {"hallo", "test", 123}
len_set = len(mein_set)
print(len_set)

### Output:
>>> 3 

Prüfen, ob ein Wert in einem Set enthalten ist

Mit Hilfe des in Statement kann man schauen, ob ein Element in einem Set vorhanden ist:

mein_set = {"hallo", "test", 123}
check_hallo = "hallo" in mein_set
print(check_hallo)

### Output:
>>> True 

ARTIKEL TEILEN

Hast du Fragen? Hinterlasse einen Kommentar!