6.0 KiB
- 📘 Tag 7
- Mengen (Sets)
- Eine Menge erstellen
- Länge einer Menge
- Zugriff auf Elemente
- Prüfen auf Elemente
- Elemente hinzufügen
- Elemente entfernen
- Mengen leeren und löschen
- Liste in Menge umwandeln
- Mengen verbinden (Union & Update)
- Schnittmenge finden (Intersection)
- Teilmengen und Obermengen prüfen
- Differenz zwischen Mengen finden
- Symmetrische Differenz
- Disjunkte Mengen
- 💻 Übungen - Tag 7
- Mengen (Sets)
📘 Tag 7
Mengen (Sets)
Eine Menge (Set) ist eine Sammlung von Elementen. Erinnere dich an deinen Mathematikunterricht in der Schule – die Definition einer Menge lässt sich direkt auf Python übertragen. Ein Set ist eine ungeordnete und nicht indizierte Sammlung von eindeutigen Elementen. In Python werden Sets verwendet, um Duplikate zu vermeiden und mathematische Operationen wie Vereinigung, Schnittmenge, Differenz und Teilmengen durchzuführen.
Eine Menge erstellen
Um eine leere Menge zu erstellen, nutzen wir die Funktion set(). Achtung: Leere geschweifte Klammern {} erstellen ein Dictionary, kein Set!
- Leere Menge erstellen:
st = set()
- Menge mit Werten erstellen:
fruits = {'Banane', 'Orange', 'Mango', 'Zitrone'}
Länge einer Menge
Wie gewohnt mit len():
print(len(fruits)) # 4
Zugriff auf Elemente
Da Sets ungeordnet sind, gibt es keinen Index-Zugriff (st[0] funktioniert nicht). Wir greifen auf Elemente meist über Schleifen zu (siehe Kapitel Schleifen).
Prüfen auf Elemente
Mit dem in Operator:
fruits = {'Banane', 'Orange', 'Mango'}
print('Mango' in fruits) # True
Elemente hinzufügen
add(item): Fügt ein Element hinzu.update(list): Fügt mehrere Elemente (z. B. aus einer Liste) hinzu.
fruits.add('Limette')
fruits.update(['Apfel', 'Pfirsich'])
Elemente entfernen
remove(item): Entfernt ein Element. Wirft einen Fehler, wenn das Element nicht existiert.discard(item): Entfernt ein Element, wirft aber keinen Fehler, falls es fehlt.pop(): Entfernt ein zufälliges Element und gibt es zurück.
Mengen leeren und löschen
clear(): Macht die Menge leer (set()).del st: Löscht die Variable komplett.
Liste in Menge umwandeln
Dies ist der schnellste Weg, um Duplikate aus einer Liste zu entfernen:
lst = ['Apfel', 'Banane', 'Apfel']
st = set(lst) # {'Apfel', 'Banane'}
Mengen verbinden (Union & Update)
union(): Gibt eine neue Menge zurück, die alle Elemente beider Mengen enthält. (Symbol:|)update(): Fügt die Elemente einer anderen Menge zur aktuellen Menge hinzu.
Schnittmenge finden (Intersection)
Gibt die Elemente zurück, die in beiden Mengen vorhanden sind. (Symbol: &)
A = {1, 2, 3}
B = {2, 3, 4}
C = A.intersection(B) # {2, 3}
Teilmengen und Obermengen prüfen
issubset(): Ist A eine Teilmenge von B?issuperset(): Ist A eine Obermenge von B?
Differenz zwischen Mengen finden
Gibt die Elemente zurück, die in A, aber nicht in B sind. (Symbol: -)
A = {1, 2, 3}
B = {2, 3, 4}
diff = A.difference(B) # {1}
Symmetrische Differenz
Gibt alle Elemente zurück, die in A oder B sind, aber nicht in beiden. (Symbol: ^)
Mathematisch: (A \ B) ∪ (B \ A).
Disjunkte Mengen
Zwei Mengen sind disjunkt, wenn sie keine gemeinsamen Elemente haben. Prüfung mit isdisjoint().
💻 Übungen - Tag 7
# Daten für die Übungen
it_companies = {'Facebook', 'Google', 'Microsoft', 'Apple', 'IBM', 'Oracle', 'Amazon'}
A = {19, 22, 24, 20, 25, 26}
B = {19, 22, 20, 25, 26, 24, 28, 27}
age = [22, 19, 24, 25, 26, 24, 25, 24]
Level 1
- Ermittle die Länge des Sets
it_companies. - Füge 'Twitter' zu
it_companieshinzu. - Füge mehrere IT-Unternehmen gleichzeitig hinzu.
- Entferne eines der Unternehmen aus dem Set.
- Was ist der Unterschied zwischen
removeunddiscard?
Level 2
- Verbinde A und B (
union). - Finde die Schnittmenge von A und B (
intersection). - Ist A eine Teilmenge von B?
- Sind A und B disjunkte Mengen?
- Verbinde A mit B und B mit A.
- Was ist die symmetrische Differenz zwischen A und B?
- Lösche die Mengen A und B vollständig.
Level 3
- Wandle die Liste
agein ein Set um und vergleiche die Länge der Liste mit der des Sets. Welche ist größer? - Erkläre den Unterschied zwischen: String, List, Tuple und Set.
- "I am a teacher and I love to inspire and teach people." -> Wie viele einzigartige Wörter wurden in diesem Satz verwendet? Nutze
splitundset.
🎉 HERZLICHEN GLÜCKWUNSCH! 🎉
