4.1 Teilmenge regelbasiert erhalten
Eine Teilmenge ist eine Menge, deren alle Elemente zu einer anderen, größeren Menge gehören. In Python gibt es einige eingebaute Methoden und Operatoren zum Arbeiten mit Teilmengen. Unten erkläre ich, wie man Teilmengen erhält, wie man überprüft, ob eine Menge eine Teilmenge einer anderen ist, und wie man dieses Wissen in verschiedenen Szenarien nutzt.
Verwendung der Schleife for
Du kannst eine leere Menge erstellen und dann Elemente hinzufügen, die eine Bedingung erfüllen, indem du die Schleife for verwendest.
my_set = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
even_set = set()
for x in my_set:
if x % 2 == 0:
even_set.add(x)
print(even_set) # Ausgabe: {2, 4, 6, 8, 10}
Das ist der einfachste und offensichtlichste Weg, eine Teilmenge zu erstellen. Aber es gibt noch einige andere und kompaktere Möglichkeiten.
Verwendung der Funktion filter()
Die Funktion filter() wendet eine Funktion auf jedes Element an und gibt nur diejenigen Elemente zurück, für die die Funktion True ergibt. Das Ergebnis muss zurück in eine Menge konvertiert werden.
my_set = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
even_set = set(filter(lambda x: x % 2 == 0, my_set))
print(even_set) # Ausgabe: {2, 4, 6, 8, 10}
Innerhalb der Funktion filter() wird ein Lambda-Ausdruck verwendet – das ist eine kurze Möglichkeit, eine Funktionsregel oder ein Filterkriterium zu definieren. Über Lambdas erzähle ich dir in ein paar Vorlesungen mehr.
4.2 Verwendung von Set Comprehensions
Erinnerst du dich an List Comprehension? Als wir in eckigen Klammern eine schnelle Methode zur Generierung einer Liste und ihrer Elemente hatten? Dieses syntaktische Werkzeug sah folgendermaßen aus:
[Ausdruck for Variable in Sequenz]
Wo:
-
Variable— ein Bezeichner einer Variablen, -
Sequenz— eine Sequenz von Werten, die die Variable annehmen kann (das kann eine Liste, ein String oder ein Objekt, das mit der Funktionrangeerzeugt wurde, sein), -
Ausdruck— ein Ausdruck, der in der Regel von der verwendeten Variablen im Generator abhängt und mit dem die Listenelemente gefüllt werden.
Für Mengen gibt es eine ähnliche Funktion, aber du musst geschweifte Klammern verwenden:
{Ausdruck for Variable in Sequenz}
Set Comprehensions ermöglichen es, auf einfache und prägnante Weise neue Mengen zu erstellen, basierend auf bestehenden, unter Anwendung von Filterbedingungen.
So kannst du nur die geraden Elemente aus einer Menge auswählen:
my_set = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
even_set = {x for x in my_set if x % 2 == 0}
print(even_set) # Ausgabe: {2, 4, 6, 8, 10}
Und hier nur die Strings:
my_set = {1, 2, 3, 4, 5, 6, 7, 8, 9, "apple", "banana"}
even_set = {x for x in my_set if type(x) == str}
print(even_set) # Ausgabe: {"apple", "banana"}
4.3 Überprüfung der Elementanwesenheit
Eine der Hauptoperationen, die man mit Mengen durchführen kann, ist das Überprüfen, ob ein Element in einer Menge vorhanden ist. In Python gibt es mehrere Möglichkeiten, dies zu tun. Lass uns die verschiedenen Methoden betrachten, um zu überprüfen, ob ein Element in einer Menge vorhanden ist.
Verwendung des Operators in
Der am häufigsten verwendete und bequemste Weg, um zu überprüfen, ob ein Element in einer Menge vorhanden ist, ist die Verwendung von des Operators in. Diese Methode gibt True zurück, wenn das Element in der Menge vorhanden ist, und False ansonsten.
my_set = {1, 2, 3, 4, 5}
print(3 in my_set) # Ausgabe: True
print(6 in my_set) # Ausgabe: False
Verwendung des Operators not in
Der Operator not in ist das Gegenteil zum Operator in und wird verwendet, um zu überprüfen, dass ein Element in der Menge nicht vorhanden ist. Er gibt True zurück, wenn das Element nicht in der Menge vorhanden ist, und False ansonsten.
my_set = {1, 2, 3, 4, 5}
print(6 not in my_set) # Ausgabe: True
print(3 not in my_set) # Ausgabe: False
Verwendung von Schleifen
Obwohl die Verwendung von Schleifen zur Überprüfung der Elementanwesenheit in einer Menge nicht der effektivste Weg ist, kann er in Situationen nützlich sein, in denen du mit komplexeren Datenstrukturen arbeitest oder zusätzliche Operationen ausführst.
my_set = {1, 2, 3, 4, 5}
element = 3
found = False
for item in my_set:
if item == element:
found = True
break
print(found) # Ausgabe: True
4.4 Überprüfung der Mengenverschachtelung
Python bietet den Operator <= und die Methode issubset() zur Überprüfung, ob eine Menge eine Teilmenge einer anderen ist.
Verwendung des Operators <=
Der Operator <= ermöglicht es, einfach zu überprüfen, ob eine Menge eine Teilmenge einer anderen ist.
set_a = {1, 2, 3}
set_b = {1, 2, 3, 4, 5}
print(set_a <= set_b) # Ausgabe: True
print(set_b <= set_a) # Ausgabe: False
Verwendung der Methode issubset()
Die Methode issubset() erfüllt die gleiche Funktion wie der Operator <= und gibt True zurück, wenn alle Elemente einer Menge in einer anderen enthalten sind.
set_a = {1, 2, 3}
set_b = {1, 2, 3, 4, 5}
print(set_a.issubset(set_b)) # Ausgabe: True
print(set_b.issubset(set_a)) # Ausgabe: False
Überprüfung auf Obermenge
Ähnlich wie bei Teilmengen kannst du überprüfen, ob eine Menge eine Obermenge einer anderen ist, indem du den Operator >= und die Methode issuperset() verwendest.
Verwendung des Operators >=
set_a = {1, 2, 3, 4, 5}
set_b = {1, 2, 3}
print(set_a >= set_b) # Ausgabe: True
print(set_b >= set_a) # Ausgabe: False
Verwendung der Methode issuperset()
set_a = {1, 2, 3, 4, 5}
set_b = {1, 2, 3}
print(set_a.issuperset(set_b)) # Ausgabe: True
print(set_b.issuperset(set_a)) # Ausgabe: False
GO TO FULL VERSION