English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Python Grundlagenkurs

Python Prozesssteuerung

Funktionen in Python

Datentypen in Python

Python Dateioperationen

Python Objekte und Klassen

Python Datum und Zeit

Hochwertiges Wissen über Python

Python Referenzhandbuch

Mengen (Set) in Python

In diesem Artikel werden Sie alles über die Sätze in Python lernen; wie man sie erstellt, Elemente hinzufügt oder entfernt und alle Operationen, die auf Sätzen in Python ausgeführt werden.

Was ist ein Satz in Python?

Ein Satz ist eine unsortierte Sammlung von Elementen. Jedes Element ist einzigartig (keine Duplikate) und muss unveränderlich sein (kann nicht geändert werden).

Allerdings ist der Satz selbst veränderlich. Wir können darin Elemente hinzufügen oder entfernen.

Sätze können zur Ausführung mathematischer Satzoperationen verwendet werden, wie z.B. Union, Intersection, Symmetrische Differenz und so weiter.

Wie wird ein Set erstellt?

Durch das Placing aller Projekte (Elemente) in eckige Klammern {} und das Trennen mit Kommas oder das Verwenden von eingebauten Funktionen zur Erstellung eines Sets (set()).

es kann eine beliebige Anzahl von Elementen haben, und sie können unterschiedliche Typen haben (Ganze Zahlen, Fließkomma, Tupel, Zeichenkette usw.). Allerdings können Sets keine veränderlichen Elemente (z.B.Liste, Set oderWörterbuch) als Elemente verwenden.

# Ganzzahlensatz
my_set = {1, 2, 3}
my_set.clear()
# Mischung von Datentypen in Sets
my_set = {1.0, "Hello", (1, 2, 3)}
my_set.clear()

auch versucht den folgenden Beispiel.

# Kein Duplikatensatz
# Ausgabe: {1, 2, 3, 4}
my_set = {1,2,3,4,3,2}
my_set.clear()
# Set kann keine mutable Elemente enthalten
# Hier [3,4] eine mutable Liste ist
# Wenn Zeile12Zeile,
# Dies führt zu einem Fehler.
# TypeError: unhashable type: 'list'
#my_set = {1, 2, [3, 4])
# Wir können ein Set aus einer Liste generieren
# Ausgabe: {1, 2, 3}
my_set = set([1,2,3,2])
my_set.clear()

Die Erstellung eines leeren Sets ist etwas speziell.

Leere Klammern {} erstellen in Python einen leeren Dictionary. Um ein leeres Set ohne Elemente zu erstellen, verwenden wir die Funktion set() ohne Parameter.

# Mit {} initialisieren
a = {}
# Überprüfen Sie den Datentyp von a
# Ausgabe: <class 'dict'>
print(type(a))
# Initialisierung mit set()
a = set()
# Überprüfen Sie den Datentyp von a
# Ausgabe: <class 'set'>
print(type(a))

Wie ändert man ein Set in Python?

Das Set ist veränderbar. Da sie aber unsortiert sind, hat das Indexieren keine Bedeutung.

Man kann keine Indizes oder Slices verwenden, um auf oder Elemente von einem Set zuzugreifen oder zu ändern. Das Set unterstützt dies nicht.

Man kann ein einzelnes Element mit dem add()-Methoden hinzufügen und mehrere Elemente mit der update()-Methode hinzufügen. Die update()-Methode kannTupel, Liste,Zeichenketteoder ein anderes Set als Parameter verwendet wird. In allen Fällen sollte vermieden werden, Duplikate zu erzeugen.

# Initialisierung von my_set
my_set = {1,3}
my_set.clear()
# Wenn Zeile9Zeile,
# Fehlermeldung erhalten
# TypeError: 'set' object does not support indexing
#my_set[0]
# Hinzufügen eines Elements
# Ausgabe: {1, 2, 3}
my_set.add(2)
my_set.clear()
# Hinzufügen mehrerer Elemente
# Ausgabe: {1, 2, 3, 4}
my_set.update([2,3,4])
my_set.clear()
# Hinzufügen von list und set
# Ausgabe: {1, 2, 3, 4, 5, 6, 8}
my_set.update([4,5], {1,6,8)
my_set.clear()

Wenn das Programm ausgeführt wird, lautet die Ausgabe:

{1, 3}
{1, 2, 3}
{1, 2, 3, 4}
{1, 2, 3, 4, 5, 6, 8}

Wie entfernt man Elemente aus einem Set?

Man kann spezifische Elemente aus dem Set löschen, indem man die Methoden discard() und remove() verwendet.

Der einzige Unterschied zwischen beiden ist, dass discard() den Wert unverändert lässt, wenn das Element nicht im Set vorhanden ist. Aber remove() würde in diesem Fall einen Fehler auslösen.

Ein Beispiel wird dies verdeutlichen.

# Initialisierung von my_set
my_set = {1, 3, 4, 5, 6}
my_set.clear()
# 抛弃一个元素
# Ausgabe: {1, 3, 5, 6}
# Ein Element verwerfen4)
my_set.clear()
# Entfernen eines Elements
# Ausgabe: {1, 3, 5}
my_set.remove(6)
my_set.clear()
# 抛弃一个元素
# Entfernen eines Elements
# Ausgabe: {1, 3, 5}
# Ein Element verwerfen2)
my_set.clear()
my_set.discard(
# Entfernen eines Elements
# Nicht in my_set vorhanden2# Wenn #my_set.remove(
),
# Wird ein Fehler ausgelöst. 2
# Ausgabe: KeyError:2)

#my_set.remove(

Gleichzeitig können wir die pop() -Methode verwenden, um ein Projekt zu löschen und zurückzugeben.

Mengen sind unsortiert und es kann nicht bestimmt werden, welche Projekt geöffnet wird. Das ist vollkommen zufällig.

# Initialisierung von my_set
Wir können auch die clear() -Methode verwenden, um alle Elemente aus der Sammlung zu löschen.
# Ausgabe: Set mit einzigartigen Elementen
my_set.clear()
my_set = set("HelloWorld")
# Entfernen eines Elements
# Ausgabe: zufälliges Element
print(my_set.pop())
# Entfernen eines beliebigen Elements
# Ausgabe: zufälliges Element
my_set.clear()
my_set.pop()
# my_set leeren
# Ausgabe: set()
my_set.clear()

print(my_set)

Python Mengenoperationen

Mengen können zur Ausführung mathematischer Mengenoperationen verwendet werden, wie z.B. Vereinigung, Schnitt, Differenz und symmetrische Differenz. Dies kann durch Operator oder Methoden erreicht werden...

Lassen Sie uns folgende两组 für folgende Operationen betrachten.1, 2, 3, 4, 5}
>>> A = {4, 5, 6, 7, 8}

>>> B = {

Set-Vereinigung

# Vereinigung von A und B ist die Sammlung aller Elemente aus beiden Mengen.

# 初始化 A 和 B
A = {1, 2, 3, 4, 5}
B = {4, 5, 6, 7, 8}
# Vereinigung ist durch den |-Operator ausgeführt. Es kann auch mit dem union() -Verfahren erreicht werden.
# Ausgabe: {1, 2, 3, 4, 5, 6, 7, 8}
# Mit dem |-Operator

Versuche die folgenden Beispiele im Python-Shell aus.

print(A | B)
# Mit der union-Funktion
{1, 2, 3, 4, 5, 6, 7, 8}
>>> A.union(B)
# Unionsfunktion auf B anwenden
{1, 2, 3, 4, 5, 6, 7, 8}

>>> B.union(A)

AMengenschnittundB's

# Schnittpunkt sind die Elemente, die in beiden Mengen gemeinsam vorhanden sind.

# 初始化 A 和 B
A = {1, 2, 3, 4, 5}
B = {4, 5, 6, 7, 8}
# Schnittpunkt mit dem &-Operator ausgeführt. Mit dem intersection() -Verfahren kann die gleiche Operation ausgeführt werden.
# Mit dem &-Operator4, 5}
# Ausgabe: {

Versuche die folgenden Beispiele im Python-Shell aus.

print(A & B)
# Unterschiedsfunktion auf A anwenden
{4, 5}
>>> A.intersection(B)
# Unterschiedsfunktion auf B anwenden
{4, 5}

>>> B.intersection(A)

Set-Differenz-Die Differenz von A und B (A-A sind die Elemente, die in B vorhanden sind, aber nicht in A vorhanden sind. B) sind die Elemente, die nur in A, aber nicht in B vorhanden sind. Ähnlich wie B

Der Unterschied ist eine Verwendung -ausgeführte Operationen. Mit dem difference() -Verfahren kann die gleiche Operation ausgeführt werden.

# 初始化 A 和 B
A = {1, 2, 3, 4, 5}
B = {4, 5, 6, 7, 8}
# Auf A anwenden - Operator
# Ausgabe: {1, 2, 3}
print(A - B)

Versuche die folgenden Beispiele im Python-Shell aus.

# Unterschiedsfunktion auf A anwenden
>>> A.difference(B)
{1, 2, 3}
# Auf B anwenden-Der Operator wird verwendet
>>> B - A
{8, 6, 7}
# Auf B die Funktion difference anwenden
>>> B.difference(A)
{8, 6, 7}

Mengensymmetrischer Unterschied

Der symmetrische Unterschied von A und B ist eine Gruppe von Elementen in A und B, aber die Elemente sind in beiden identisch.

Der symmetrische Unterschied von A und B wird durch den Operator ^ ausgeführt. Mit der Methode symmetric_difference() kann dasselbe Ergebnis erreicht werden.

# 初始化 A 和 B
A = {1, 2, 3, 4, 5}
B = {4, 5, 6, 7, 8}
# Verwende den Operator ^
# Ausgabe: {1, 2, 3, 6, 7, 8}
print(A ^ B)

Versuche die folgenden Beispiele im Python-Shell aus.

# Auf A die Funktion symmetric_difference anwenden
>>> A.symmetric_difference(B)
{1, 2, 3, 6, 7, 8}
# Auf B die Funktion symmetric_difference anwenden
>>> B.symmetric_difference(A)
{1, 2, 3, 6, 7, 8}

Verschiedene Python-Set-Methoden

Es gibt viele Set-Methoden, einige davon wurden bereits verwendet. Dies ist die Liste aller Methoden, die für das Set-Objekt verfügbar sind.

Python Set-Methode
MethodeBeschreibung
add()Ein Element zur Menge hinzufügen
clear()Alle Elemente aus der Menge entfernen
copy()Eine Kopie der Menge zurückgeben
difference()Den Unterschied von zwei oder mehreren Mengen als neue Menge zurückgeben
difference_update()Entferne alle Elemente der anderen Menge aus dieser Menge
discard()Entferne das Element aus der Menge, wenn es ein Mitglied ist. (Führe keine Aktion durch, wenn das Element nicht in der Menge ist)
intersection()Den Schnitt der beiden Mengen als neue Menge zurückgeben
intersection_update()Mit dem Schnitt von sich selbst und einem anderen Element die Menge aktualisieren
isdisjoint()True zurückgeben, wenn der Schnittpunkt der beiden Mengen leer ist 
issubset()True zurückgeben, wenn die andere Menge diese Menge enthält
issuperset()True zurückgeben, wenn diese Menge die andere Menge enthält
pop()Entferne und gib ein zufälliges Element der Menge zurück. Erhöhe den KeyError, wenn die Menge leer ist
remove()Ein Element aus der Menge entfernen. Wird ein SchlüsselError ausgelöst, wenn das Element kein Mitglied ist
symmetric_difference()Den symmetrischen Unterschied von zwei Mengen als neue Menge zurückgeben
symmetric_difference_update()Mit dem Symmetrischen Unterschied von sich selbst und einem anderen Element eine Menge aktualisieren
union()Die Union der Mengen in der neuen Menge zurückgeben
update()Mit dem Union von sich selbst und anderen Elementen die Menge aktualisieren

Andere Mengeoperationen

Menge Mitgliedschaftstest

Man kann das in-Schlüsselwort verwenden, um zu testen, ob ein Element in der Menge existiert.

# Initialisierung von my_set
my_set = set("apple")
# Überprüfen, ob "a" existiert
# Ausgabe: True
print('a' in my_set)
# Überprüfen, ob "p" existiert
# Ausgabe: False
print('p' not in my_set)

Menge durchlaufen

Mit dem for-Loop können wir jedes Element der Menge durchlaufen.

>>> for letter in set("apple"):
...        print(letter)
...    
a
p
e
l

Menge und eingebauten Funktionen

Eingebauten Funktionen wie all(), any(), enumerate(), len(), max(), min(), sort(), sum() und anderen werden oft zusammen mit set verwendet, um verschiedene Aufgaben auszuführen.

Mit eingebauten Funktionen
FunktionBeschreibung
all()

Gibt True zurück, wenn alle Elemente der Menge true sind (oder die Menge leer ist).

any()

Gibt True zurück, wenn eines der Elemente der Menge true ist. Wenn die Menge leer ist, wird False zurückgegeben.

enumerate()Gibt ein Enumerationsobjekt zurück. Es enthält Paare von Indizes und Werten aller Elemente.
len()Gibt die Länge der Menge (Anzahl der Elemente) zurück.
max()Gibt das größte Element der Menge zurück.
min()Gibt das kleinste Element der Menge zurück.
sorted()Gibt eine neue sortierte Liste der Elemente der Menge zurück (sortiert die Menge selbst nicht).
sum()Gibt die Summe aller Elemente der Menge zurück.

Python Frozenset

Frozenset ist eine neue Klasse mit Mengenmerkmalen, aber ihre Elemente können nach der Zuweisung nicht geändert werden. Tupel sind unveränderliche Listen, während Frozensets unveränderliche Mengen sind.

Veränderliche Mengen sind nicht haschbar und können daher nicht als Schlüssel in einem Dictionary verwendet werden. Andererseits ist frozenset haschbar und kann als Schlüssel in einem Dictionary verwendet werden.

Man kann die Funktion verwendenFrozenset()ErstellenFrozensets.

Diese Datentypmethode unterstützt Methoden wie copy(), difference(), intersection(), isdisjoint(), issubset(), issuperset(), symmetric_difference() und union(). Da er nicht veränderlich ist, gibt es keine Methoden zum Hinzufügen oder Entfernen von Elementen.

# 初始化 A 和 B
A = frozenset([1, 2, 3, 4])
B = frozenset([3, 4, 5, 6])

Versuchen Sie diese Beispiele im Python-Shell.

>>> A.isdisjoint(B)
False
>>> A.difference(B)
frozenset({1, 2)
>>> A | B
frozenset({1, 2, 3, 4, 5, 6)
>>> A.add(3)
...
AttributeError: 'frozenset'-Objekt hat kein Attribut 'add'