Python - Mengen
Hallo, aufstrebende Python-Programmierer! Heute tauchen wir in die faszinierende Welt der Python-Mengen ein. Als euer freundlicher Nachbar und Informatiklehrer bin ich begeistert, euch auf dieser Reise zu führen. Also, holt euch euer Lieblingsgetränk, macht euch komfortabel und lassen uns gemeinsam die Mengen erkunden!
Mengen in Python
Stell dir vor, du hast einen Beutel voller bunten Murmeln. Jede Murmel ist einzigartig, und dir ist egal, in welcher Reihenfolge sie sind – du willst nur wissen, welche Farben du hast. Das ist grundsätzlich, was eine Menge in Python ist!
Eine Menge ist eine unsortierte Sammlung einzigartiger Elemente. Es ist wie eine mathematische Menge: Keine Duplikate erlaubt, und die Reihenfolge spielt keine Rolle. Mengen sind unglaublich nützlich, wenn du einzigartige Elemente speichern oder Mengenoperationen wie Vereinigung, Schnitt und Differenz durchführen musst.
Erstellen einer Menge in Python
Lassen uns damit beginnen, unsere erste Menge zu erstellen. Es gibt zwei Hauptmethoden, um eine Menge in Python zu erstellen:
- Mit geschweiften Klammern {}
- Mit dem
set()
-Konstruktor
Hier ist ein Beispiel für beide Methoden:
# Methode 1: Verwenden von geschweiften Klammern
fruits = {'Apfel', 'Banane', 'Kirsche'}
# Methode 2: Verwenden des set() Konstruktors
colors = set(['rot', 'grün', 'blau'])
print(fruits)
print(colors)
Ausgabe:
{'Kirsche', 'Apfel', 'Banane'}
{'blau', 'rot', 'grün'}
Beachte, wie sich die Reihenfolge der Elemente in der Ausgabe von der Definition unterscheiden kann. Das liegt daran, dass Mengen unsortiert sind!
Duplikatelemente in einer Menge
Erinnere dich, als ich sagte, dass Mengen nur einzigartige Elemente enthalten? Lass uns sehen, was passiert, wenn wir versuchen, Duplikate hinzuzufügen:
numbers = {1, 2, 3, 2, 4, 3, 5}
print(numbers)
Ausgabe:
{1, 2, 3, 4, 5}
Wie du siehst, entfernt Python die Duplikate automatisch für uns. Ist das nicht praktisch?
Hinzufügen von Elementen zu einer Menge
Um ein einzelnes Element zu einer Menge hinzuzufügen, verwenden wir die add()
-Methode. Wenn wir mehrere Elemente auf einmal hinzufügen möchten, verwenden wir die update()
-Methode.
# Hinzufügen eines einzelnen Elements
fruits.add('Orange')
print(fruits)
# Hinzufügen mehrerer Elemente
fruits.update(['Traube', 'Mango'])
print(fruits)
Ausgabe:
{'Kirsche', 'Apfel', 'Banane', 'Orange'}
{'Kirsche', 'Mango', 'Apfel', 'Banane', 'Orange', 'Traube'}
Entfernen von Elementen aus einer Menge
Es gibt mehrere Möglichkeiten, Elemente aus einer Menge zu entfernen. Lass uns diese erkunden:
# Verwenden von remove() - löst einen Fehler aus, wenn das Element nicht existiert
fruits.remove('Banane')
# Verwenden von discard() - löst keinen Fehler aus, wenn das Element nicht existiert
fruits.discard('Kiwi')
# Verwenden von pop() - entfernt und gibt ein beliebiges Element zurück
popped = fruits.pop()
print(f"Entferntes Element: {popped}")
# Verwenden von clear() - entfernt alle Elemente
fruits.clear()
print(fruits)
Ausgabe:
Entferntes Element: Kirsche
set()
Mitgliedschaftstest in einer Menge
Eine der großen Vorteile von Mengen ist, dass sie einen sehr schnellen Mitgliedschaftstest ermöglichen. Wir können das in
-Schlüsselwort verwenden, um zu überprüfen, ob ein Element in einer Menge existiert:
numbers = {1, 2, 3, 4, 5}
print(3 in numbers) # True
print(6 in numbers) # False
Diese Operation ist mit Mengen viel schneller als mit Listen, besonders für große Sammlungen!
Mengenoperationen
Mengen in Python unterstützen verschiedene mathematische Mengenoperationen. Lass uns einige davon ansehen:
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}
# Vereinigung
print(set1 | set2) # oder set1.union(set2)
# Schnitt
print(set1 & set2) # oder set1.intersection(set2)
# Differenz
print(set1 - set2) # oder set1.difference(set2)
# Symmetrische Differenz
print(set1 ^ set2) # oder set1.symmetric_difference(set2)
Ausgabe:
{1, 2, 3, 4, 5, 6, 7, 8}
{4, 5}
{1, 2, 3}
{1, 2, 3, 6, 7, 8}
Python Set-Comprehensions
Genau wie Listen-Comprehensions unterstützt Python auch Set-Comprehensions. Sie bieten eine prägnante Möglichkeit, Mengen basierend auf existierenden iterierbaren Objekten zu erstellen.
# Erstellen einer Menge der Quadrate von Zahlen von 0 bis 9
squares = {x**2 for x in range(10)}
print(squares)
Ausgabe:
{0, 1, 4, 9, 16, 25, 36, 49, 64, 81}
Filtern von Elementen mit Set-Comprehensions
Wir können auch Set-Comprehensions verwenden, um Elemente zu filtern:
# Erstellen einer Menge von geraden Quadraten von 0 bis 9
even_squares = {x**2 for x in range(10) if x % 2 == 0}
print(even_squares)
Ausgabe:
{0, 4, 16, 36, 64}
Geschachtelte Set-Comprehensions
Während weniger häufig, sind auch geschachtelte Set-Comprehensions möglich:
# Erstellen einer Menge von Tupeln (x, y), wobei x und y Zahlen sind
digit_pairs = {(x, y) for x in range(3) for y in range(3)}
print(digit_pairs)
Ausgabe:
{(0, 1), (1, 2), (0, 0), (2, 0), (1, 1), (2, 2), (0, 2), (2, 1), (1, 0)}
Gefrierte Mengen
Abschließend, aber nicht zuletzt, lass uns über gefrierte Mengen sprechen. Eine gefrierte Menge ist eine unveränderliche Version eines Python-Menge-Objekts. Während die Elemente einer Menge jederzeit geändert werden können, bleiben die Elemente einer gefrierten Menge nach der Erstellung gleich.
normal_set = {1, 2, 3}
frozen_set = frozenset([1, 2, 3])
normal_set.add(4) # Dies funktioniert
# frozen_set.add(4) # Dies würde einen AttributeError auslösen
Gefrierte Mengen sind besonders nützlich, wenn du eine unveränderliche Menge benötigst, wie z.B. als Schlüssel für ein Wörterbuch.
Und so ist es, Leute! Wir haben die Einmaleins der Python-Mengen abgedeckt. Denke daran, dass Übung macht den Meister, also zögere nicht, mit diesen Konzepten zu experimentieren. Happy coding!
Hier ist eine Tabelle, die die wichtigsten Mengenmethoden zusammenfasst, die wir besprochen haben:
Methode | Beschreibung |
---|---|
add() | Fügt ein Element zur Menge hinzu |
update() | Fügt mehrere Elemente zur Menge hinzu |
remove() | Entfernt ein spezifisches Element aus der Menge (löst einen Fehler aus, wenn nicht gefunden) |
discard() | Entfernt ein spezifisches Element aus der Menge (löst keinen Fehler aus, wenn nicht gefunden) |
pop() | Entfernt und gibt ein zufälliges Element aus der Menge zurück |
clear() | Entfernt alle Elemente aus der Menge |
union() | Gibt eine Menge zurück, die die Vereinigung von Mengen enthält |
intersection() | Gibt eine Menge zurück, die den Schnitt von Mengen enthält |
difference() | Gibt eine Menge zurück, die die Differenz von Mengen enthält |
symmetric_difference() | Gibt eine Menge zurück, die Elemente enthält, die in entweder Menge, aber nicht in beiden sind |
Credits: Image by storyset