🔷 Sets in Python – Mengen ohne Duplikate

🔷 Sets in Python – Mengen ohne Duplikate#

Ein Set (Menge) ist eine ungeordnete Sammlung einzigartiger Elemente – also keine Duplikate erlaubt!

Sets können direkt erstellt werden (geschweifte statt eckige Klammern):

farben = {"rot", "grün", "blau"}

Vorhandene Listen können mit dem Set-Konstruktur erzeugt werden

farben = set(["rot", "grün", "grün", "blau"])
print(farben)  # → {'rot', 'grün', 'blau'}

🔧 Wichtige Set-Operationen#

Operation

Beispiel

Ergebnis / Wirkung

Hinzufügen

s.add(“neu”)

Element wird eingefügt (falls nicht da)

Entfernen

s.remove(“rot”)

Element wird gelöscht

Sicheres Entfernen

s.discard(“rot”)

Kein Fehler, falls Element nicht da

Anzahl Elemente

len(s)

Anzahl der einzigartigen Elemente

Duplikate entfernen

set(liste)

Liste → Set (ohne Duplikate)

🔁 Sets iterieren Sets können genau wie Listen iteriert werden

farben = set(["rot", "grün", "grün", "blau"])
for farbe in farben:
    print(f"{farbe} ist eine schöne Farbe")

🔀 Mengenoperationen

a = {1, 2, 3}
b = {3, 4, 5}

print(a & b) # Schnittmenge {3}
print(a | b) # Vereinigungsmenge {1, 2, 3, 4, 5}
print(a - b) # Differenzmenge {1, 2}
print(a ^ b) # Symmetrische Differenz {1, 2, 4, 5}

🎓 Mini-Projekt#

Programmiere ein einfaches “Ich packe meinen Koffer” Spiel. Frage den Spieler in einer Endloßschleife nach den Gegenständen, die er in seinen Koffer packen möchte. Der Einfachheithalber soll der Spieler eine mit Kommas separierte Liste eingeben.

Zu Beginn ist der Koffer leer, du kannst ein leeres Set mit

koffer = set()

erzeugen.

Beachte die Regeln des Spiels: Der Spieler muß in jeder Runde alle Gegenstände auflisten die bereits im Koffer sind sowie genau einen neuen benennen. Wenn der Spieler einen Gegenstand vergisst bzw. keinen neuen hinzufügt oder mehrere neue auf einmal hinzufügt ist das Spiel beendet. Verwende Mengenoperationen um zu entscheiden ob diese Bedingungen erfüllt wurden.

💡 Tipps: Du kannst die split() Funktion benutzen um den eingegebenen String nach jedem Komma in eine Liste zu splitten. Ausserdem kannst Du die strip() Funktion benutzen um überflüssige Leerzeichen am Anfang und am Ende eines jeden Wortes zu entfernen.

Lösung