Sets - Learn Python 3 - Snakify

Lesson 10
Sätze


1. Was ist ein Set?

In Python ist eine Datenstruktur festgelegt, die den Mengen in Mathematik entspricht. Es kann aus verschiedenen Elementen bestehen; Die Reihenfolge der Elemente in einer Menge ist nicht definiert. Sie können Elemente einer Menge hinzufügen und löschen, Sie können die Elemente der Menge iterieren, Sie können Standardoperationen für Mengen durchführen (Vereinigung, Schnittmenge, Differenz). Außerdem können Sie überprüfen, ob ein Element zu einem Set gehört.

Im Gegensatz zu Arrays, bei denen die Elemente als geordnete Liste gespeichert werden, ist die Reihenfolge der Elemente in einem Set undefiniert (darüber hinaus werden die Set-Elemente normalerweise nicht in der Reihenfolge ihres Erscheinens im Set gespeichert; dies ermöglicht es, zu überprüfen, ob ein Element schneller zu einem Set gehört als nur durch alle Elemente des Sets gehen).

Jeder unveränderliche Datentyp kann ein Element einer Menge sein: eine Zahl, eine Zeichenfolge, ein Tupel. Veränderbare (änderbare) Datentypen können keine Elemente der Menge sein. Insbesondere kann list kein Element einer Menge sein (aber Tupel kann), und eine andere Menge kann kein Element einer Menge sein. Die Anforderung der Unveränderlichkeit ergibt sich aus der Art und Weise, wie Computer Sätze im Speicher darstellen.

Advertising by Google, may be based on your interests

2. Wie definiere ich einen Satz?

Sie können einen Satz so einfach definieren, wie Sie alle seine Elemente in Klammern benennen. Die einzige Ausnahme ist die leere Menge , die mit der Funktion set() . Wenn set(..) eine Liste, eine Zeichenfolge oder ein Tupel als Parameter enthält, gibt es eine Menge zurück, die aus ihren Elementen besteht. Beispielsweise,

A = {1, 2, 3}
A = set('qwerty')
print(A)

wird {'e', 'q', 'r', 't', 'w', 'y'} als Ausgabe ausgeben.

Die Reihenfolge der Elemente ist unwichtig. Zum Beispiel das Programm

A = {1, 2, 3}
B = {3, 2, 3, 1}
print(A == B)

wird True , weil A und B gleich sind.

Jedes Element darf das Set nur einmal eingeben. set('Hello') gibt den Satz von vier Elementen zurück: {'H', 'e', 'l', 'o'} .

Advertising by Google, may be based on your interests

3. Operationen mit Elementen

Mit der Funktion len erhalten Sie die Anzahl der Elemente im Set.

Sie können auch über alle Elemente der Menge (in einer undefinierten Reihenfolge!) Iterieren, indem Sie die Schleife for Folgendes verwenden:

primes = {2, 3, 5, 7, 11}
for num in primes:
    print(num)

Mit dem Schlüsselwort in können Sie prüfen, ob ein Element zu einer Menge gehört: Ausdrücke wie a in A geben einen Wert vom Typ bool . In ähnlicher Weise gibt es die umgekehrte Operation not in . Um der Menge ein Element hinzuzufügen, gibt es die Methode add :

A = {1, 2, 3}
print(1 in A, 4 not in A)
A.add(4)

Es gibt zwei Methoden, um ein Element aus einer Menge zu entfernen: discard und remove . Ihr Verhalten ist nur dann unterschiedlich, wenn der gelöschte Gegenstand nicht im Set war. In diesem Fall wird das Verfahren discard tut nichts , und das Verfahren remove wirft Ausnahme KeyError .

Schließlich entfernt pop ein zufälliges Element aus der Menge und gibt seinen Wert zurück. Wenn das Set leer ist, erzeugt pop die Ausnahme KeyError .

Sie können einen Satz mithilfe der Funktionsliste in eine list umwandeln.

Advertising by Google, may be based on your interests

4. Operationen an Sets

So führen Sie die bekannten Operationen für Mengen in Python aus:

A | B
A.union (B)
Gibt eine Menge zurück, die die Vereinigung der Mengen A und B .
A | = B
A.update (B)
Fügt alle Elemente von Array B zur Menge A .
A & B
A.Überschnitt (B)
Gibt eine Menge zurück, die die Schnittmenge der Mengen A und B .
A & = B
A. Überschneidung_aktualisieren (B)
Blätter in der Menge A nur Elemente, die zu der Menge B .
A - B
A. Unterschied (B)
Gibt den Satzunterschied von A und B (die Elemente, die in A , aber nicht in B ).
A - = B
A.Differenz_Update (B)
Entfernt alle Elemente von B aus der Menge A
A ^ B
A.symmetrische_Differenz (B)
Gibt die symmetrische Differenz der Mengen A und B (die Elemente, die entweder zu A oder B , aber nicht zu beiden Mengen gleichzeitig).
A ^ = B
A.symmetrische_Differenz_Update (B)
Schreibt in A die symmetrische Differenz der Mengen A und B
A <= B
A.Subset (B)
Gibt true wenn A eine Teilmenge von B .
A> = B
A.issuperset (B)
Gibt true wenn B eine Teilmenge von A .
A <B
Äquivalent zu A <= B and A != B
A> B
Entspricht A >= B and A != B
Advertising by Google, may be based on your interests