📘 Tag 7

March 28, 2026 · View on GitHub

30 Tage Python: Tag 7 - Mengen (Sets)

Twitter Follow

Autor: Asabeneh Yetayeh
Zweite Edition: Juli 2021

<< Tag 6 | Tag 8 >>

30DaysOfPython

📘 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

  1. Ermittle die LĂ€nge des Sets it_companies.
  2. FĂŒge 'Twitter' zu it_companies hinzu.
  3. FĂŒge mehrere IT-Unternehmen gleichzeitig hinzu.
  4. Entferne eines der Unternehmen aus dem Set.
  5. Was ist der Unterschied zwischen remove und discard?

Level 2

  1. Verbinde A und B (union).
  2. Finde die Schnittmenge von A und B (intersection).
  3. Ist A eine Teilmenge von B?
  4. Sind A und B disjunkte Mengen?
  5. Verbinde A mit B und B mit A.
  6. Was ist die symmetrische Differenz zwischen A und B?
  7. Lösche die Mengen A und B vollstÀndig.

Level 3

  1. Wandle die Liste age in ein Set um und vergleiche die LĂ€nge der Liste mit der des Sets. Welche ist grĂ¶ĂŸer?
  2. ErklÀre den Unterschied zwischen: String, List, Tuple und Set.
  3. "I am a teacher and I love to inspire and teach people." -> Wie viele einzigartige Wörter wurden in diesem Satz verwendet? Nutze split und set.

🎉 HERZLICHEN GLÜCKWUNSCH! 🎉

<< Tag 6 | Tag 8 >>