Python Tutorials

Python Sets: Der umfassende Leitfaden

Spread the love

Mengen in Python sind ungeordnete Sammlungen eindeutiger Elemente. Das bedeutet, dass doppelte Werte automatisch entfernt werden und die Reihenfolge, in der Sie Elemente hinzufügen, keine Auswirkungen darauf hat, wie sie gespeichert oder abgerufen werden. Mengen sind standardmäßig veränderlich (mutable), es sei denn, Sie verwenden den Typ frozenset, der unveränderlich (immutable) ist.

Mengen sind besonders nützlich für Aufgaben, die einen effizienten Mitgliedschaftstest (Überprüfung, ob ein Element existiert), das Entfernen von Duplikaten aus einer Liste und das Ausführen von Mengenoperationen wie Vereinigung, Schnittmenge und Differenz erfordern.

Inhaltsverzeichnis

  1. Mengen erstellen
  2. Elemente hinzufügen und aktualisieren
  3. Elemente entfernen
  4. Mengenoperationen
  5. Mengenmethoden
  6. Weitere Mengenoperationen
  7. Eingebaute Funktionen mit Mengen
  8. Frozensets

1. Mengen erstellen

Sie können Mengen mithilfe von geschweiften Klammern {} oder dem Konstruktor set() erstellen. Beachten Sie, dass eine leere Menge muss mit set() erstellt werden; {} erstellt ein leeres Wörterbuch.


# Verwendung von geschweiften Klammern
my_set = {1, 2, 3, 4, 5}
print(my_set)  # Ausgabe: {1, 2, 3, 4, 5}

# Verwendung des set()-Konstruktors
another_set = set([6, 7, 8, 8])  # Duplikate werden automatisch entfernt
print(another_set)  # Ausgabe: {8, 6, 7}

empty_set = set()
print(empty_set)  # Ausgabe: set()

Denken Sie daran, dass Mengen ungeordnet sind, daher kann sich die Reihenfolge der Ausgabe von der Eingabereihenfolge unterscheiden.

2. Elemente hinzufügen und aktualisieren

Verwenden Sie die Methode add(), um ein einzelnes Element hinzuzufügen, und die Methode update(), um mehrere Elemente hinzuzufügen.


my_set = {1, 2, 3}
my_set.add(4)
print(my_set)  # Ausgabe: {1, 2, 3, 4}

my_set.update([5, 6, 7])
print(my_set)  # Ausgabe: {1, 2, 3, 4, 5, 6, 7}

my_set.update({8, 9}, (10,))  # Aktualisierung mit Menge und Tupel
print(my_set)  # Ausgabe: {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}

3. Elemente entfernen

Mehrere Methoden ermöglichen das Entfernen von Elementen. remove() löst einen KeyError aus, wenn das Element nicht gefunden wird, während discard() dies nicht tut.


my_set = {1, 2, 3, 4, 5}

my_set.remove(3)  # Löst KeyError aus, wenn Element nicht gefunden wird
print(my_set)  # Ausgabe: {1, 2, 4, 5}

my_set.discard(6)  # Löst keinen Fehler aus, wenn Element nicht gefunden wird
print(my_set)  # Ausgabe: {1, 2, 4, 5}

removed_element = my_set.pop()  # Entfernt und gibt ein beliebiges Element zurück
print(removed_element)  # Ausgabe: (ein zufälliges Element)
print(my_set)

my_set.clear()  # Entfernt alle Elemente
print(my_set)  # Ausgabe: set()

4. Mengenoperationen

Mengen unterstützen Standard-Mengenoperationen der Mathematik:


set1 = {1, 2, 3}
set2 = {3, 4, 5}

# Vereinigung: kombiniert Elemente aus beiden Mengen
union_set = set1 | set2  # oder set1.union(set2)
print(union_set)  # Ausgabe: {1, 2, 3, 4, 5}

# Schnittmenge: Elemente, die in beiden Mengen vorhanden sind
intersection_set = set1 & set2  # oder set1.intersection(set2)
print(intersection_set)  # Ausgabe: {3}

# Differenz: Elemente in set1, aber nicht in set2
difference_set = set1 - set2  # oder set1.difference(set2)
print(difference_set)  # Ausgabe: {1, 2}

# Symmetrische Differenz: Elemente entweder in set1 oder set2, aber nicht in beiden
symmetric_difference_set = set1 ^ set2  # oder set1.symmetric_difference(set2)
print(symmetric_difference_set)  # Ausgabe: {1, 2, 4, 5}

5. Mengenmethoden

Python bietet viele eingebaute Methoden zur Mengenmanipulation:


my_set = {1, 2, 3, 4, 5}

print(my_set.issubset({1, 2, 3, 4, 5, 6}))  # True
print(my_set.issuperset({1, 2}))  # True
print(my_set.isdisjoint({6, 7, 8}))  # True - keine gemeinsamen Elemente
print(my_set.copy()) # erstellt eine flache Kopie der Menge

6. Weitere Mengenoperationen

Über die grundlegenden Operationen hinaus können Sie die Mitgliedschaft überprüfen, die Länge ermitteln und mehr:


my_set = {1, 2, 3}
print(1 in my_set)  # Ausgabe: True
print(4 not in my_set)  # Ausgabe: True
print(len(my_set))  # Ausgabe: 3

7. Eingebaute Funktionen mit Mengen

Funktionen wie all(), any(), sum(), min(), max() funktionieren mit Mengen:


my_set = {1, 2, 3, 4, 5}
print(sum(my_set))  # Ausgabe: 15
print(min(my_set))  # Ausgabe: 1
print(max(my_set))  # Ausgabe: 5
print(all(x > 0 for x in my_set))  # Ausgabe: True
print(any(x == 0 for x in my_set))  # Ausgabe: False

8. Frozensets

frozenset erstellt eine unveränderliche Menge. Nach der Erstellung können Sie keine Elemente mehr hinzufügen oder entfernen. Sie sind nützlich als Wörterbuchschlüssel oder Elemente anderer Mengen.


my_frozenset = frozenset({1, 2, 3})
# my_frozenset.add(4)  # Dies löst einen AttributeError aus
print(my_frozenset)  # Ausgabe: frozenset({1, 2, 3})

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert