In dieser Lektion werden wir uns mit verschiedenen Methoden für Sets auseinandersetzen, die ihr bis jetzt noch nicht gesehen haben könntet. Wir wiederholen die bekannten und tauchen dann ein wenig tiefer ein. Los geht's!
s = set()
Um Elemente zum Set hinzuzufügen nutzen wir add(). Denkt daran, dass ein Set keine duplizierten Elemente aufnimmt und sie nur einmal darstellt. Deshalb ist es ein Set!
s.add(1)
s.add(2)
s
{1, 2}
Clear() entfernt alle Elemente aus dem Set.
s.clear()
s
set()
Die Methode copy() kopiert ein Set. Bedenkt, dass es wirkliche eine Kopie ist, d.h. Veränderungen an einem der Sets lassen das andere unberührt.
s = {1,2,3}
sc = s.copy()
sc
{1, 2, 3}
s.add(4)
s
{1, 2, 3, 4}
sc
{1, 2, 3}
Um herauszufinden, was zwei Sets unterscheidet können wir difference() verwenden. Die Schreibweise lautet:
set1.difference(set2)
Zum Beispiel:
s.difference(sc)
{4}
Die difference_update Schreibweise lautet:
set1.difference_update(set2)
Diese Methode gibt set1 zurück, nachdem die Elemente entfernt wurden, die in Set 2 enthalten sind.
s1 = {1,2,3}
s2 = {1,4,5}
s1.difference_update(s2)
s1
{2, 3}
Sofern ein Element Bestandteil eines Sets ist, kann es mit discard() entfernt werden. Andernfalls passiert nichts.
s
{1, 2, 3, 4}
s.discard(4)
s
{1, 2, 3}
intersection() und intersection_update() geben die Überschneidung von zwei oder mehr Sets als neues Set zurück.
s1 = {1,2,3}
s2 = {1,2,4}
s1.intersection(s2)
{1, 2}
s1
{1, 2, 3}
intersection_update() wird ein Set mit der Schnittmenge von sich selbst und einem weiteren Set überschreiben.
s1.intersection_update(s2)
s1
{1, 2}
Um zu überprüfen, ob zwei Sets keine Schnittmenge haben, verwenden wir isdisjoint(). Diese Methode gibt True (wahr) aus, falls keine Schnittmenge vorliegt.
s1 = {1,2}
s2 = {1,2,4}
s3 = {5}
s1.isdisjoint(s2)
False
s1.isdisjoint(s3)
True
Die Methode issubset() ermittelt, ob ein anderes Set ein bestimmtes Set beinhaltet.
s1
{1, 2}
s2
{1, 2, 4}
s1.issubset(s2)
True
Die Methode issuperset() ermittelt, ob ein bestimmtes Set ein anderes Set beinhaltet.
s2.issuperset(s1)
True
symmetric_difference() und symmetric_update() geben den symmetrischen Unterschied als ein neues Set zurück, d.h. all die Elemente, die (nur) in genau einem der Sets beinhaltet sind.
s1
{1, 2}
s2
{1, 2, 4}
s1.symmetric_difference(s2)
{4}
Die Methode union() falls zwei Sets zusammen, d.h. alle Werte, die in mindestens einem der beiden Sets auftauchen.
s1.union(s2)
{1, 2, 4}
Um ein Set mit der Zusammenführung aus sich selbst und einem anderen Set zu überschreiben verwenden wir update().
s1.update(s2)
s1
{1, 2, 4}
Großartig! Jetzt sollten euch alle Methoden, die euch für Sets zur Verfügung stehen, geläufig sein. Diese Daten Struktur ist extrem nützlich und wird häufig von Anfängern unterschätzt. Behaltet es euch im Kopf!
Gute Arbeit!