- Nutze alle Lernfunktionen, wie Tests, Quizze und Umfragen.
- Schreibe Beiträge und tausche dich in unseren Foren aus.
- In einigen Lernangeboten bestätigen wir dir die Teilnahme.
AI.Lab
Kursthemen
-
-
Sets
Ein Set kann man sich wie eine Art Liste vorstellen. In dieser Liste kann jedes Element aber nur ein einziges Mal vorkommen. Doppelte Elemente werden automatisch entfernt. Eine "Reihenfolge" gibt es in einem Set nicht. Es gibt also kein "fünftes Element" auf das man mit set[5] zugreifen könnte. Es können nur immutable Objekte in ein Set eingefügt werden (also z.B. keine Listen). Das Set selbst ist veränderbar, es können also Elemente hinzugefügt oder entfernt werden.
Sets werden in Python mit geschweiften Klammen
{}
oder alternativ mit derset()
-Funktion erstellt. Hier folgen ein paar Beispiele: -
# Erstellen eines Sets my_set = {1, 2, 3, 4, 5} print(my_set) # Oder mit der set()-Funktion my_set = set([7, 2, 3, 3, 5]) print(my_set) # Duplikate werden automatisch entfernt my_set = {1, 2, 3, 4, 5, 5, 5} print(my_set) # Ausgabe: {1, 2, 3, 4, 5}
-
Nach der Erstellung können Elemente hinzugefügt oder entfernt werden.
Mit der
add()
Funktion wird das übergebene Elemente in das Set eingefügt.
Zum Entfernen gibt es zwei Methoden:
remove()
: Entfernt das Element aus dem Set, wirft einen Fehler wenn es nicht im Set enthalten ist.
discard()
: Entfernt das Element aus dem Set (kein Fehler). -
my_set.add(6) print(my_set) my_set.discard(6) my_set.discard(7) my_set.remove(5) my_set.remove(9) # Hier wird der Fehler KeyError 9 ausgegeben, da 9 nicht im Set ist.
-
Um zu prüfen, ob ein Element im Set enthalten ist kann der
in
-Operator verwendet werden. Dieser wird folgendermaßen verwendet: -
print(3 in my_set) print(18 in my_set) if 2 in my_set: print("2 ist im Set enthalten") else: print("2 ist nicht im Set enthalten")
-
Zudem kann mithilfe des in-Operators über Sets iteriert werden:
-
for i in my_set: print(i)
-
set1 = {1, 2, 3} set2 = {3, 4, 5} vereinigung = set1 | set2 #Alle Elemente die in Set 1 oder 2 sind print(vereinigung) schnittmenge = set1 & set2 # Alle Elemente die in beiden Sets sind print(schnittmenge) differenz = set1-set2 # Alle Elemente die in 1 aber nicht in 2 sind print(differenz) exor = set1 ^ set2 # Alle Elemente die in 1 (exklusiv-)oder 2 sind print(exor)
-
Ein Beispiel für die Verwendung von Sets könnte sein, dass die Anzahl der verschiedenen Arbeitnehmer an einem Standort (an einem Tag) ausgewertet werden soll. Dazu werden alle Stempeldaten der Stempeluhr ausgewertet. Aus datenschutzrechtlichen Gründen sind nur die Nummern der Arbeitnehmer und keine Stempelzeiten verfügbar. Da die Arbeitnehmer auch Pausen und Gehen stempeln, reicht es nicht aus die Länge der Liste zu bestimmen, da hier Daten doppelt vorkommen.
-
stempel_daten = [413466, 132288, 203338, 413466, 347256, 708690, 792003, 137586, 182276, 752431, 165043, 802431, 347256, 832225, 802431, 802431, 750298, 101971, 863127, 484306, 455140, 165043, 927744, 347256, 165043, 137586, 360122, 370803, 370803, 484306, 407178, 746199, 752431, 746199, 636589, 476845, 746199, 218765, 707112, 870876, 101971, 454689, 586957, 792003, 792003, 211916, 107661, 648940, 586957, 708690, 594952, 746199, 750063, 792003, 132288, 750063, 648940, 336269, 617228, 832225, 132181, 648940, 476845, 203338, 587419, 682549, 336269, 488540, 682549, 226820, 107661, 455140, 708690, 594952, 132181, 863127, 802431, 927744, 594952, 488540, 927744, 488540, 218765, 407178, 101971, 746199, 514528, 336434, 636589, 182276, 336434, 875411, 203338, 746199, 370803, 636589, 132288, 454689, 906293, 608115, 862552, 212178, 107661, 226820, 336269, 832225, 226820, 336269, 586957, 137586, 713886, 165043, 437187, 682549, 454689, 336269, 708690, 927744, 407178, 617228, 360122, 906293, 608115, 750298, 212178, 212178, 514528, 407178, 875411, 437187, 792003, 211916, 212178, 370803, 212178, 437187, 870876, 862552, 906293, 226820, 870876, 182276, 713886, 636589, 107661, 713886, 587419, 454689, 514528, 707112]
-
Wir können die Anzahl ermitteln, indem wir die Liste zu einem Set umwandeln. Hier sind alle Elemente einzigartig. Anschließend kann die Länge bestimmt werden. Führe die Aufgabe in der nächsten Zelle aus:
-
set1 = set(stempel_daten) print("Anzahl Arbeiter:", len(set1),"\n", set1)
-
Übung (Dartscheibe) Teil 1
Als Nächstes soll eine Liste für ein Dartspiel geschrieben werden. Diese Liste soll alle möglichen Ergebnisse eines Wurfes enthalten. Es können die Zahlen von 0 bis 20 als Single, Double und Triple geworfen werden. Dazu kommen noch die 25 und die Double 25. Es sollen keine Wurfergebnisse doppelt vorkommen.
-
Übung (Dartscheibe) Teil 2
Mithilfe der Ergebnisse aus Aufgabe 1 sollen nun alle Ergebnisse von
drei
Würfen berechnet werden. Auch hier soll kein Ergebnis doppelt vorkommen. -
Übung (Dartscheibe) Teil 3
Als Letztes sollen nun alle Scores zwischen 0 und 180 ausgegeben werden, welche nicht in 3 Würfen geworfen werden können:
-