Python-Sets: Operationen, Methoden und Mengenlehre

Master-Sets in Python. Erfahren Sie, wie Sie eindeutige Werte speichern, Schnittmengen, Vereinigungen und Differenzen ausführen und die Leistungsvorteile von Hashing verstehen.

Versuchen Sie es im Editor

Übersicht

Ein Set ist eine ungeordnete Sammlung eindeutiger Elemente in Python. Sets basieren auf Hash-Tabellen, wodurch sie für Mitgliedschaftstests hochoptimiert sind – um festzustellen, ob sich ein bestimmtes Element in der Sammlung befindet. Während die Prüfung, ob ein Element in einer Liste enthalten ist, das Scannen jedes Elements erfordert (ein „O(N)“-Vorgang), wird die Prüfung der Zugehörigkeit zu einer Menge in der konstanten Zeit „O(1)“ ausgeführt. Dies macht Sets unglaublich leistungsfähig für die Eliminierung von Duplikaten und die Filterung großer Datenmengen.

Sätze werden mit geschweiften Klammern „{}“, die Werte enthalten (ohne Doppelpunkte), oder mithilfe des integrierten Konstruktors „set()“ initialisiert. Beachten Sie, dass das Schreiben leerer geschweifter Klammern „{}“ ein leeres Wörterbuch initialisiert, da geschweifte Klammern auch für Wörterbücher verwendet werden. Um einen leeren Satz zu initialisieren, müssen Sie „set()“ verwenden. Elemente innerhalb einer Menge müssen hashbar und unveränderlich sein, was bedeutet, dass Sie Zahlen, Zeichenfolgen und Tupel speichern können, aber Sie können keine Listen oder Wörterbücher in einer Menge speichern.

Über die grundlegenden Additions- und Löschmethoden hinaus unterstützen Python-Sets nativ Operationen aus der mathematischen Mengenlehre. Dazu gehören Union (`|` oder `.union()`) zum Zusammenführen von Sammlungen, Intersection (`&` oder `.intersection()`) zum Suchen gemeinsamer Elemente, Difference (`-` oder `.difference()`) zum Suchen von Elementen, die für eine Sammlung eindeutig sind, und Symmetric Difference (`^`) zum Abrufen von Elementen in einem Satz, aber nicht in beiden. Durch das Mastering von Sets können Sie komplexe Gruppierungsprobleme mit sauberem, leistungsfähigem und lesbarem Code lösen.

Code- und Ausführungsausgabe

Duplikate aus einer Liste entfernen und mathematische Mengenoperationen durchführen.

# Removing duplicates
roles_list = ["admin", "user", "editor", "admin", "user"]
# Sort the set to guarantee deterministic printed output
unique_roles = sorted(list(set(roles_list)))
print(f"Unique roles: {unique_roles}")

# Set operations
dev_skills = {"python", "javascript", "sql"}
ops_skills = {"sql", "docker", "kubernetes"}

# Union and Intersection (sorted for deterministic output)
all_skills = sorted(list(dev_skills | ops_skills))
common_skills = sorted(list(dev_skills & ops_skills))
unique_to_dev = sorted(list(dev_skills - ops_skills))

print(f"Union: {all_skills}")
print(f"Intersection: {common_skills}")
print(f"Dev only: {unique_to_dev}")
Terminal-Ausgabe
Unique roles: ['admin', 'editor', 'user']
Union: ['docker', 'javascript', 'kubernetes', 'python', 'sql']
Intersection: ['sql']
Dev only: ['javascript', 'python']

Schrittweise Umsetzung

  • Entfernen doppelter Einträge aus API-Ergebnissen oder CSV-Dateien
  • Bestimmen gemeinsamer Elemente zwischen zwei Datenbanken
  • Durchführen schneller Suchvorgänge für große ID-Listen

Häufig gestellte Fragen

Sind Elemente in einer Menge geordnet?

Nein, Mengen sind ungeordnet. Sie können nicht über einen Index (wie set[0]) auf Elemente zugreifen oder sie aufteilen.

Wie füge ich Elemente in einem Set hinzu oder entferne sie?

Verwenden Sie die Methode .add(), um ein einzelnes Element einzufügen, und .remove() oder .discard(), um eines zu entfernen. .discard() ist sicherer, da es keinen Fehler auslöst, wenn das Element fehlt.

Verwandte Themen

Empfohlene Python-Ressourcen

Erweitern Sie Ihr Wissen mit zugehörigen interaktiven Tutorials, Spickzetteln und Codevergleichen.