Python-Tutorial - Datentypsatz

Jinku Hu 7 März 2021
  1. Python-Sets erzeugen
  2. Python Set Update
  3. Elemente aus einem Python-Set entfernen
  4. Python Set Operationen
  5. Python Set Methoden
  6. Andere Python-Set-Operationen
  7. Python Set Eingebaute Funktionen
  8. Python Frozenset
Python-Tutorial - Datentypsatz

In diesem Abschnitt erfahren Sie, wie Sie Sets in Python erstellen und wie Sie Elemente zu Sets hinzufügen und aus Sets entfernen können.

Set enthält einzigartige Elemente und ist eine ungeordnete Liste von Elementen.

Info
Set ist ein veränderbares Objekt, so dass Sie Elemente zu einem Set hinzufügen und löschen können.

Python-Sets erzeugen

Ein Satz in Python kann mit geschweiften Klammern {} erstellt werden und die Elemente werden durch Kommas getrennt. Sie können ein Set auch mit der eingebauten Methode set() erstellen.

Die Elemente eines Sets können von verschiedenen Datentypen sein. Die Elemente einer Menge sollten unveränderlich sein. Zum Beispiel können Sie ein Tupel als Element des Sets haben, aber Sie können kein Set oder Dictionary oder eine Liste als Elemente des Sets haben.

>>> x = {3, 5, 7, 2, 4, 5}		
>>> print(x)		#prints the set variable
{2, 3, 4, 5, 7}
>>> print(type(x))		#checking type of x
<class 'set'>

Sie könnten die set() Methode mit leeren Parametern verwenden, um eine leere Liste zu erstellen. Wenn Sie {} schreiben, um ein leeres Objekt zu erzeugen, wird es als ein Dictionary interpretiert:

>>> x = {}
>>> print(type(x))
<class 'dict'>

>>> x = set()
>>> print(type(x))
<class 'set'>

Python Set Update

Indizierung und Slicing können nicht verwendet werden, um Elemente einer Menge zu ändern, da Menge kein geordneter Datentyp ist.

Ein einzelnes Element kann in einer Menge mit der add() Methode hinzugefügt werden. Wenn man mehr als ein Element in einem Set hinzufügen möchte, dann muss man die update() Methode verwenden.

>>> s = {2, 4}
>>> print(s)
{2, 4}

>>> s.add(6)
>>> print(s)
{2, 4, 6}

>>> s.update([2, 4, 6])
>>> print(s)
{2, 4, 6}

>>> s.update([5,6], {7, 8, 9})
>>> print(s)
{2, 4, 5, 6, 7, 8, 9}

Elemente aus einem Python-Set entfernen

Um ein Element aus einer Menge zu entfernen, können Sie entweder die discard() Methode oder die remove() Methode verwenden.

Der Unterschied zwischen diesen Methoden ist, dass die discard() Methode nichts abfragt, wenn das zu löschende Element nicht in der Menge ist, während remove() einen Fehler erzeugt, wenn das zu löschende Element nicht gefunden wird.

>>> s = {2, 4, 5, 6, 7, 8, 9}
>>> print(s)
{2, 4, 5, 6, 7, 8, 9}

>>> s.discard(6)
>>> print(s)
{2, 4, 5, 7, 8, 9}

>>> s.remove(8)
>>> print(s)
{2, 4, 5, 7, 9}

>>> s.discard(6)		#no error
>>> s.remove(8)			#generated an error
Traceback (most recent call last):
  File "<pyshell#18>", line 1, in <module>
    s.remove(8)
KeyError: 8

Sie können auch pop() benutzen, um ein Element aus einer Menge zu entfernen. pop() entfernt und gibt ein arbiträres Mengenelement zurück.

>>> s = set("Python")
>>> s
{'o', 'n', 'h', 'P', 'y', 't'}
>>> s.pop()
o
>>> s.pop()
n
>>> s
{'h', 'P', 'y', 't'}
>>> s.clear()
>>> print(s)
set()

Sie können die set clear() Methode benutzen, um alle Elemente der Menge zu löschen.

>>> s = set("Python")
>>> s.clear()
>>> s
set()

Python Set Operationen

Sie können Operationen wie Vereinigung, Schnittmenge, Differenz und symmetrische_Differenz durchführen.

Angenommen, du hast zwei Sätze x und y:

>>> x = {1, 2, 3, 4, 5, 6}
>>> y = {7, 8, 9, 10, 11, 12}

Vereinigung

Die Vereinigung von zwei Sets ergibt ein neues Set, das alle Elemente beider Sets enthält.

Um die Vereinigung durchzuführen, kann man entweder den | Operator oder die union() Methode verwenden.

>>> print(x | y)
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}

#using union() method on x
>>> x.union(y)
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}
#union on y
>>> y.union(x)
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}

Python-Mengenüberschneidung

Die Schnittmenge zweier Sets ergibt ein neues Set, das die in beiden Sets gemeinsamen Elemente enthält.

Um eine Schnittmengenoperation durchzuführen, können Sie entweder den & Operator oder die intersection() Methode verwenden.

>>> x = {1, 2, 3, 4, 5, 6}
>>> y = {7, 8, 9, 2, 6, 1}
>>> print(x & y)
{1, 2, 6}

#using intersection() method on x
>>> x.intersection(y)
{1, 2, 6}
#intersection on y
>>> y.intersection(x)
{1, 2, 6}

Python Mengen Differenz

Die Differenz zweier Mengen ergibt eine neue Menge, die Elemente der ersten Menge enthält, die in der zweiten Menge nicht vorhanden sind.

Zum Beispiel ist x - y ein Element von x, das nicht in y enthalten ist. Ähnlich ist y - x ein Element von y, das nicht in x enthalten ist.

Um die Differenz durchzuführen, kann man entweder den - Operator oder die difference() Methode verwenden.

>>> x = {1, 2, 3, 4, 5, 6}
>>> y = {7, 8, 9, 2, 6, 1}
>>> print(x - y)
{3, 4, 5}

#using difference() method on x
>>> x.difference(y)
{3, 4, 5}
#diference on y
>>> y.difference(x)
{8, 9, 7}

Python setzt Symmetrische Differenz

Die symmetrische Differenz zweier Mengen ergibt eine neue Menge, die Elemente enthält, die in beiden Mengen nicht gemeinsam sind.

Um die symmetrische Differenz durchzuführen, können Sie entweder den ^-Operator oder die symmetric_difference() Methode verwenden.

>>> x = {1, 2, 3, 4, 5, 6}
>>> y = {7, 8, 9, 2, 6, 1}
>>> print(x ^ y)
{3, 4, 5, 7, 8, 9}

#using symmetric_difference() method on x
>>> x.symmetric_difference(y)
{3, 4, 5, 7, 8, 9}
#symmetric_diference on y
>>> y.symmetric_difference(x)
{3, 4, 5, 7, 8, 9}

Python Set Methoden

Die folgende Liste ist die Liste der Methoden, die auf Sets in Python angewendet werden können:

Methode Beschreibung
add() ein Element zu einer Menge hinzufügen
clear() die Elemente des Sets löschen (löscht das gesamte Set)
copy() die Kopie eines Satzes zurückgeben
difference() gibt eine neue Menge zurück, die Elemente der ersten Menge enthält, die in der zweiten Menge nicht vorhanden sind.
difference_update() alle Elemente einer anderen Menge aus der aktuellen Menge entfernen
discard() ein bestimmtes Element aus einer Menge entfernen
intersection() geben ein neues Set zurück, das die in beiden Sets gemeinsamen Elemente enthält.
intersection_update() eine Menge mit der Schnittmenge dieser Menge mit einer anderen Menge aktualisieren
isdisjoint() gibt ein True zurück, wenn zwei Mengen einen Null-Schnittpunkt ergeben
issubset() gibt ein True zurück, wenn ein anderer Satz den aktuellen Satz hat
issuperset() gibt ein True zurück, wenn die aktuelle Menge eine andere Menge hat
pop() ein Element aus einer Menge zurückgeben
remove() ein bestimmtes Element aus einer Menge zu entfernen. Ist das Element nicht in der Menge, wird ein Fehler erzeugt.
symmetric_difference() gibt ein neues Set zurück, das Elemente enthält, die in beiden Sets nicht gemeinsam sind.
symmetric_difference_update() einen Satz mit der symmetrischen Differenz dieses Satzes mit einem anderen Satz aktualisieren
union() geben ein neues Set zurück, das alle Elemente beider Sets enthält.
update() ein Set mit der Vereinigung dieses Sets mit einem anderen Set aktualisieren

Andere Python-Set-Operationen

Set Membership Check

Das Schlüsselwort in prüft, ob ein Element ein Mitglied der Menge ist oder nicht.

>>> s = set("Blue")
>>> print('o' in s)
False
>>> print('l' in s)
True

Iterieren durch eine Menge

Sie können durch ein Set iterieren, indem Sie eine for-Schleife verwenden:

for i in set("Blue"):
    print(i)

Ergebnis:

B
l
u
e

Python Set Eingebaute Funktionen

Nachfolgend sind einige der eingebauten Funktionen aufgeführt, die mit Sets verwendet werden können, um verschiedene Aufgaben durchzuführen:

Funktionen Beschreibung
all() geben True zurück, wenn alle Elemente der Menge True sind. Es gibt auch Waise zurück, wenn die Menge leer ist.
any() gibt True zurück, wenn eines der Elemente der Menge True ist. Es gibt False zurück, wenn die Menge leer ist.
enumerate() gibt den Index und den Wert aller Elemente der Menge als Tupel zurück. Es gibt ein enumerate Objekt zurück.
len() gibt die Anzahl der Elemente in einem Set oder die Länge des Sets zurück.
menge() einen Satz definieren.
max() die maximale Position im Set zurückgeben.
min() den Mindestposten im Set zurückgeben.
sorted() gibt eine sortierte Liste von Elementen einer Menge zurück.
sum() gibt die Summe aller Elemente der Menge zurück.

Python Frozenset

Frozenset ist ein spezielles Set, dessen Elemente bei einmaliger Zuweisung nicht aktualisiert werden können. Frozensets sind unveränderliche Sets.

Da Sets veränderbar sind, können sie nicht als Schlüssel für im Dictionary verwendet werden, aber eingefrorene Sets sind unveränderlich, daher können Sie eingefrorene Sets als Dictionarieschlüssel verwenden.

Ein Frozenset kann mit der frozenset() Methode erstellt werden.

Die folgenden sind einige der Methoden, die von frozenset unterstützt werden:

  • copy()
  • difference()
  • intersection()
  • isdisjoint()
  • issubset()
  • issuperset()
  • symmetric_difference()
  • union()
>>> x = frozenset([2,6,3,9])
>>> y = frozenset([6,1,2,4])
>>> x.difference(y)
frozenset({9, 3})
Autor: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook