Ein Set ist eine Datenstruktur in Python, mit der man mehrere Werte abspeichern kann, nur kommen hier keine Werte doppelt vor.
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"}
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.
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"}
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}
Um Werte in Python Sets einzufügen, gibt es zwei Möglichkeiten:
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}
Um Werte aus Sets zu entfernen, gibt es zwei Möglichkeiten:
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
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}
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
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