English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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.
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.
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))
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}
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()
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}
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}
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}
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}
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}
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.
Methode | Beschreibung |
---|---|
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 |
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)
Mit dem for-Loop können wir jedes Element der Menge durchlaufen.
>>> for letter in set("apple"): ... print(letter) ... a p e l
Eingebauten Funktionen wie all(), any(), enumerate(), len(), max(), min(), sort(), sum() und anderen werden oft zusammen mit set verwendet, um verschiedene Aufgaben auszuführen.
Funktion | Beschreibung |
---|---|
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. |
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'