W3docs

Set-Elemente hinzufügen

Erfahren Sie, wie Sie mit add() einzelne Elemente und mit update() mehrere Werte aus beliebigen Iterables zu einem Python-Set hinzufügen.

Python-Sets sind ungeordnete Sammlungen eindeutiger Elemente. Sobald ein Set erstellt ist, können Sie es jederzeit mit zwei dedizierten Methoden erweitern: add() zum Einfügen eines einzelnen Elements und update() zum Einfügen mehrerer Elemente auf einmal aus einem beliebigen Iterable. Dieses Kapitel behandelt beide Methoden ausführlich, erklärt, wann welche verwendet werden sollte, und weist auf häufige Fallstricke hin.

Wenn Sie neu im Umgang mit Sets sind, lesen Sie zuerst das Kapitel Python Sets. Um zu erfahren, wie Elemente entfernt werden, lesen Sie Set-Elemente entfernen.

Die Methode add()

add() fügt ein Element in das Set ein. Wenn das Element bereits vorhanden ist, wird das Set nicht verändert — es wird kein Fehler ausgelöst und kein Duplikat erstellt.

Syntax

set.add(element)
  • element — der einzufügende Wert. Er muss hashbar sein (string, Zahlen, Tupel aus hashbaren Werten usw.). Listen und Dicts können nicht hinzugefügt werden.
  • Rückgabewert: None. Das Set wird direkt verändert.

Ein neues Element hinzufügen

Einen string zu einem Set hinzufügen

python— editable, runs on the server

Ein Duplikat hinzufügen ist sicher

Der Aufruf von add() mit einem bereits vorhandenen Element bewirkt nichts — das Set bleibt gleich groß:

Ein doppeltes Element zu einem Set hinzufügen

fruits = {'apple', 'banana', 'cherry'}
fruits.add('apple')   # 'apple' is already present
print(fruits)
# {'apple', 'banana', 'cherry'}   (unchanged)

Dies ist eine der nützlichsten Eigenschaften von Sets: Sie müssen nie prüfen, ob ein Element vorhanden ist, bevor Sie es hinzufügen.

add() akzeptiert nur ein Argument

add() nimmt genau ein Argument entgegen. Um mehrere Elemente auf einmal einzufügen, verwenden Sie stattdessen update() (siehe nächster Abschnitt).

# This raises TypeError: set.add() takes exactly one argument (2 given)
# fruits.add('kiwi', 'mango')

add() erfordert ein hashbares Element

In einem Set können nur hashbare Typen gespeichert werden. Listen und Dictionaries sind nicht hashbar, daher löst deren Übergabe an add() einen TypeError aus:

s = {1, 2, 3}
# s.add([4, 5])  # TypeError: unhashable type: 'list'
# Use a tuple instead:
s.add((4, 5))
print(s)
# {1, 2, 3, (4, 5)}

Die Methode update()

update() fügt alle Elemente aus einem oder mehreren Iterables in einem einzigen Aufruf zum Set hinzu. Es akzeptiert jedes Iterable — ein weiteres Set, eine Liste, ein Tupel oder sogar einen string.

Syntax

set.update(iterable1, iterable2, ...)
  • Es können ein oder mehrere Iterables übergeben werden.
  • Duplikate zwischen dem vorhandenen Set und den neuen Elementen werden stillschweigend ignoriert.
  • Rückgabewert: None. Das Set wird direkt verändert.

Elemente aus einer Liste hinzufügen

Ein Set aus einer Liste aktualisieren

fruits = {'apple', 'banana'}
fruits.update(['cherry', 'date', 'elderberry'])
print(fruits)
# {'apple', 'banana', 'cherry', 'date', 'elderberry'}

Elemente aus einem anderen Set hinzufügen

Zwei Sets mit update() zusammenführen

set1 = {1, 2, 3}
set2 = {3, 4, 5}
set1.update(set2)
print(set1)
# {1, 2, 3, 4, 5}

Beachten Sie, dass update() set1 direkt verändert, während union() ein neues Set zurückgibt, ohne eines der Originale zu berühren.

Aus mehreren Iterables gleichzeitig hinzufügen

Sie können einem einzigen update()-Aufruf mehrere Iterables übergeben:

Ein Set aus mehreren Iterables aktualisieren

numbers = {1, 2, 3}
numbers.update([4, 5], {5, 6, 7})
print(numbers)
# {1, 2, 3, 4, 5, 6, 7}

Einen string an update() übergeben

Da ein string iterierbar ist, zerlegt update() ihn in einzelne Zeichen. Das ist in der Regel nicht das gewünschte Verhalten, daher ist Vorsicht geboten:

Mit einem string aktualisieren — fügt einzelne Zeichen hinzu

s = {'hello'}
s.update('abc')
print(s)
# {'hello', 'a', 'b', 'c'}   — each character becomes a separate element

Um einen ganzen string als ein Element hinzuzufügen, verwenden Sie stattdessen add().

add() vs update() — Kurzübersicht

add()update()
Anzahl der ElementeEinesMehrere
ArgumenttypEin einzelner hashbarer WertBeliebiges Iterable (Liste, Set, Tupel, …)
Verändert Set direkt?JaJa
RückgabewertNoneNone

Praktische Beispiele

Ein Tag-Set dynamisch aufbauen

Ein häufiger Anwendungsfall ist das Sammeln eindeutiger Tags oder Bezeichner während der Programmausführung:

Eindeutige Tags mit einem Set sammeln

tags = set()

# add() for one tag at a time
tags.add('python')
tags.add('tutorial')
tags.add('python')   # duplicate — ignored

print(tags)
# {'python', 'tutorial'}

# update() to add several tags at once
tags.update(['coding', 'beginner', 'tutorial'])
print(tags)
# {'python', 'tutorial', 'coding', 'beginner'}

Duplikate beim Akkumulieren von Daten entfernen

Da add() Duplikate stillschweigend ignoriert, können Sie ein Set als Akkumulator verwenden, um Elemente aus mehreren Quellen zu deduplizieren:

Elemente aus zwei Listen mithilfe eines Sets deduplizieren

batch1 = [101, 102, 103, 102]
batch2 = [103, 104, 105]

seen = set()
seen.update(batch1)
seen.update(batch2)

print(sorted(seen))
# [101, 102, 103, 104, 105]

Wichtige Punkte

  • Sets speichern nur eindeutige Elemente; add() und update() erstellen niemals Duplikate.
  • Sets sind ungeordnet — die Einfügereihenfolge wird nicht beibehalten und kann zwischen Programmläufen variieren.
  • add() fügt genau ein hashbares Element ein; update() fügt alle Elemente aus einer beliebigen Anzahl von Iterables ein.
  • Beide Methoden geben None zurück und verändern das Set direkt.
  • Um zwei Sets zu einem neuen Set zu kombinieren, ohne eines der beiden zu verändern, verwenden Sie union() (siehe Set-Methoden).

Übung

Übung
What methods in Python can be used to add items into set?
What methods in Python can be used to add items into set?
Was this page helpful?