Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> Python

Python-Sets meistern: Erstellung, Manipulation & Operationen

Python-Sets

Entdecken Sie, wie Pythons Set-Datentyp Datendeduplizierung und mengenbasierte Operationen vereinfacht. Dieser Leitfaden behandelt Erstellung, Modifikation, Löschung und alle wesentlichen Mengenoperationen.

Video: Sets in Python

Ein Set ist eine ungeordnete Sammlung einzigartiger, unveränderlicher Elemente. Während das Set selbst veränderbar ist – was das Hinzufügen oder Entfernen von Elementen erlaubt – müssen seine einzelnen Elemente hashbar sein (z. B. Zahlen, Strings, Tupel).

Python-Sets unterstützen mathematische Mengenoperationen wie Vereinigung, Durchschnitt, Differenz und symmetrische Differenz, was sie ideal für Aufgaben wie Datendeduplizierung, Mitgliedschaftstests und Mengenalgebra macht.


Python-Sets erstellen

Verwenden Sie geschweifte Klammern oder den eingebauten set()-Konstruktor, um ein Set zu erstellen. Elemente können jeden unveränderlichen Typ haben, aber veränderliche Typen wie Listen, Dicts oder andere Sets können nicht enthalten sein.

# Beispiel 1: Sets mit verschiedenen Datentypen
# Set von Ganzzahlen
my_set = {1, 2, 3}
print(my_set)
# Set mit gemischten Datentypen
my_set = {1.0, 'Hallo', (1, 2, 3)}
print(my_set)

Ausgabe

{1, 2, 3} {1.0, (1, 2, 3), 'Hallo'}

Beachten Sie, wie doppelte Werte automatisch entfernt werden und wie Tupel – da unveränderlich – akzeptiert werden.

# Duplikate entfernen
my_set = {1, 2, 3, 4, 3, 2}
print(my_set)
# Set aus einer Liste konstruieren
my_set = set([1, 2, 3, 2])
print(my_set)
# Versuch, ein veränderliches Element einzuschließen, verursacht einen Fehler
# my_set = {1, 2, [3, 4]}  # TypeError: unhashable type: 'list'

Ausgabe

{1, 2, 3, 4} {1, 2, 3} Traceback (most recent call last): File "<string>", line 15, in <module> my_set = {1, 2, [3, 4]} TypeError: unhashable type: 'list'

Die Erstellung eines leeren Sets erfordert den set()-Konstruktor; die Verwendung von {} erstellt stattdessen ein leeres Dictionary.

# Set und Dictionary bei leeren Strukturen unterscheiden
a = {}
print(type(a))
a = set()
print(type(a))

Ausgabe

<class 'dict'> <class 'set'>

Ein Set in Python modifizieren

Sets sind veränderbar, unterstützen aber aufgrund ihrer ungeordneten Natur kein Indexing oder Slicing.

Verwenden Sie add(), um ein einzelnes Element einzufügen, und update(), um ein anderes Iterable in das Set zu mergen. Doppelte Einträge werden automatisch ignoriert.

# Beispiel: Elemente hinzufügen
my_set = {1, 3}
print(my_set)
# Versuch, ein Set zu indexieren, löst einen Fehler aus
# my_set[0]  # TypeError: 'set' object does not support indexing
# Einzelnes Element hinzufügen
my_set.add(2)
print(my_set)
# Mehrere Elemente aus einer Liste hinzufügen
my_set.update([2, 3, 4])
print(my_set)
# Liste und anderes Set kombinieren
my_set.update([4, 5], {1, 6, 8})
print(my_set)

Ausgabe

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

Elemente aus einem Set entfernen

Verwenden Sie discard(), um ein Element zu entfernen, falls es existiert, andernfalls nichts zu tun. Im Gegensatz dazu löst remove() einen KeyError aus, wenn das Element fehlt.

# Beispiel: Discard vs. Remove
my_set = {1, 3, 4, 5, 6}
print(my_set)
my_set.discard(4)
print(my_set)
my_set.remove(6)
print(my_set)
my_set.discard(2)
print(my_set)
# Das folgende wird KeyError auslösen
# my_set.remove(2)

Ausgabe

{1, 3, 4, 5, 6} {1, 3, 5, 6} {1, 3, 5} {1, 3, 5} Traceback (most recent call last): File "<string>", line 28, in <module> KeyError: 2

Die pop()-Methode entfernt und gibt ein beliebiges Element zurück, während clear() das Set vollständig leert.

# Pop- und Clear-Beispiel
my_set = set("HalloWelt")
print(my_set)
print(my_set.pop())
print(my_set)
my_set.clear()
print(my_set)

Ausgabe

{'H', 'l', 'r', 'W', 'o', 'd', 'e'} H {'r', 'W', 'o', 'd', 'e'} set()

Python-Set-Operationen

Python-Sets unterstützen klassische Mengenalgebra: Vereinigung, Durchschnitt, Differenz und symmetrische Differenz. Diese können über Operatoren oder dedizierte Methoden aufgerufen werden.

Lassen Sie uns zwei Beispiel-Sets verwenden:

A = {1, 2, 3, 4, 5}
B = {4, 5, 6, 7, 8}

Vereinigung

Python-Sets meistern: Erstellung, Manipulation & Operationen

Die Vereinigung von A und B kombiniert alle eindeutigen Elemente.

print(A | B)

Ausgabe

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

Durchschnitt

Python-Sets meistern: Erstellung, Manipulation & Operationen

Der Durchschnitt gibt nur Elemente zurück, die in beiden Sets gemeinsam sind.

print(A & B)

Ausgabe

{4, 5}

Differenz

Python-Sets meistern: Erstellung, Manipulation & Operationen

Die Differenz A - B listet Elemente auf, die in A aber nicht in B vorhanden sind.

print(A - B)

Ausgabe

{1, 2, 3}

Symmetrische Differenz

Python-Sets meistern: Erstellung, Manipulation & Operationen

Die symmetrische Differenz A ^ B gibt Elemente zurück, die in einem der Sets, aber nicht in beiden sind.

print(A ^ B)

Ausgabe

{1, 2, 3, 6, 7, 8}

Weitere Set-Methoden

Nachfolgend eine Kurzreferenz für alle eingebauten Methoden, die auf Set-Objekten verfügbar sind:

MethodeBeschreibung
add()Fügt ein Element zum Set hinzu
clear()Entfernt alle Elemente
copy()Gibt eine flache Kopie zurück
difference()Gibt ein neues Set mit Elementen zurück, die im Aufrufer, aber nicht in anderen sind
difference_update()In-place Differenz-Entfernung
discard()Entfernt Element, falls vorhanden; kein Fehler bei Abwesenheit
intersection()Gibt ein neues Set mit gemeinsamen Elementen zurück
intersection_update()In-place Durchschnitts-Update
isdisjoint()True, wenn Sets keine gemeinsamen Elemente haben
issubset()True, wenn Aufrufer eine Teilmenge eines anderen Sets ist
issuperset()True, wenn Aufrufer ein anderes Set vollständig enthält
pop()Entfernt und gibt ein beliebiges Element zurück; KeyError bei leerem Set
remove()Entfernt Element; KeyError bei Abwesenheit
symmetric_difference()Gibt ein neues Set mit exklusiven Elementen zurück
symmetric_difference_update()In-place symmetrische Differenz-Update
union()Gibt ein neues Set mit allen eindeutigen Elementen zurück
update()In-place Vereinigung mit einem anderen Iterable

Set-Mitgliedschaftstest

Prüfen Sie die Elementexistenz mit dem Schlüsselwort in.

my_set = set("apfel")
print('a' in my_set)   # True
print('p' not in my_set)  # False

Ausgabe

True False

Über ein Set iterieren

Schleifen Sie über ein Set mit einer Standard-for-Schleife; die Reihenfolge ist nicht garantiert.

for letter in set("apfel"):
    print(letter)

Eingebaute Funktionen mit Sets

Funktionen wie len(), max(), min(), sum(), all(), any() und sorted() funktionieren nahtlos mit Sets. Hier ist eine Tabelle gängiger Hilfsfunktionen:

FunktionBeschreibung
all()True, wenn alle Elemente truthy sind (oder Set leer)
any()True, wenn mindestens ein Element truthy ist
enumerate()Iteriert mit Index, nützlich für Debugging
len()Anzahl der Elemente
max()Größtes Element
min()Kleinstes Element
sorted()Gibt eine sortierte Liste aus dem Set zurück
sum()Summe aller numerischen Elemente

Python Frozenset

Ein frozenset ist ein unveränderliches Gegenstück zu einem Set. Einmal erstellt, können sich seine Elemente nicht ändern, was es hashbar und als Dictionary-Key verwendbar macht.

A = frozenset([1, 2, 3, 4])
B = frozenset([3, 4, 5, 6])

Unterstützte Operationen spiegeln die regulärer Sets wider, mit Ausnahme der mutierenden Methoden.

print(A.isdisjoint(B))
print(A.difference(B))
print(A | B)
# Versuch, ein Element hinzuzufügen, löst AttributeError aus
# A.add(3)  # AttributeError: 'frozenset' object has no attribute 'add'

Python

  1. Python-Datentypen meistern: Praxisleitfaden
  2. Python-Operatoren meistern: Umfassender Leitfaden
  3. Python pass-Statement meistern: Praxisleitfaden
  4. Python-Funktionsargumente meistern: Positional, Keyword & Default-Parameter
  5. Python-Dictionaries meistern: Erstellung, Manipulation und fortgeschrittene Techniken
  6. Python Iteratoren meistern: Funktionsweise und Erstellung eigener Iteratoren
  7. Python Closures erklärt: Wie verschachtelte Funktionen Variablen erfassen
  8. Python datetime meistern: Praktischer Leitfaden zu Datumsangaben, Zeiten und Zeitzonen
  9. Python Überblick: Hochlevel, lesbar, interaktiv & objektorientiert
  10. Python Zahlen: Unveränderliche numerische Datentypen verstehen