W3docs

Aggiungere Elementi a un Set

Scopri come aggiungere elementi a un set Python con add() per un singolo valore e update() per più valori da qualsiasi iterabile, con esempi chiari.

I set di Python sono collezioni non ordinate di elementi unici. Una volta creato un set, puoi espanderlo in qualsiasi momento usando due metodi dedicati: add() per inserire un singolo elemento e update() per inserire più elementi contemporaneamente da qualsiasi iterabile. Questo capitolo tratta entrambi i metodi in profondità, spiega quando usare ciascuno e mette in evidenza i problemi più comuni.

Se sei nuovo ai set, leggi prima il capitolo Python Sets. Per imparare a rimuovere elementi, consulta Remove Set Items.

Il metodo add()

add() inserisce un elemento nel set. Se l'elemento esiste già, il set non viene modificato — non viene generato alcun errore e non viene creato alcun duplicato.

Sintassi

set.add(element)
  • element — il valore da inserire. Deve essere hashable (string, numeri, tuple di valori hashable, ecc.). Liste e dizionari non possono essere aggiunti.
  • Valore restituito: None. Il set viene modificato in-place.

Aggiungere un nuovo elemento

Aggiungere una string a un set

python— editable, runs on the server

Aggiungere un duplicato è sicuro

Chiamare add() con un elemento già presente non fa nulla — il set rimane della stessa dimensione:

Aggiungere un elemento duplicato a un set

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

Questa è una delle proprietà più utili dei set: non devi mai verificare se un elemento esiste prima di aggiungerlo.

add() accetta un solo argomento

add() accetta esattamente un argomento. Per inserire più elementi contemporaneamente, usa invece update() (vedi la sezione successiva).

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

add() richiede un elemento hashable

Solo i tipi hashable possono essere memorizzati in un set. Le liste e i dizionari non sono hashable, quindi passarli a add() genera un TypeError:

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)}

Il metodo update()

update() aggiunge tutti gli elementi da uno o più iterabili al set in una sola chiamata. Accetta qualsiasi iterabile — un altro set, una lista, una tupla o persino una string.

Sintassi

set.update(iterable1, iterable2, ...)
  • È possibile passare uno o più iterabili.
  • I duplicati tra il set esistente e i nuovi elementi vengono ignorati silenziosamente.
  • Valore restituito: None. Il set viene modificato in-place.

Aggiungere elementi da una lista

Aggiornare un set da una lista

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

Aggiungere elementi da un altro set

Unire due set con update()

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

Nota che update() modifica set1 in-place, mentre union() restituisce un nuovo set senza toccare nessuno dei due originali.

Aggiungere da più iterabili contemporaneamente

Puoi passare più iterabili a una singola chiamata update():

Aggiornare un set da più iterabili

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

Passare una string a update()

Poiché una string è iterabile, update() la divide in singoli caratteri. Di solito non è quello che si vuole, quindi fai attenzione:

Aggiornare con una string — aggiunge i singoli caratteri

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

Per aggiungere un'intera string come unico elemento, usa invece add().

add() vs update() — Confronto rapido

add()update()
Numero di elementiUnoMolti
Tipo di argomentoUn singolo valore hashableQualsiasi iterabile (lista, set, tupla, …)
Modifica il set in-place?
RestituisceNoneNone

Esempi pratici

Costruire dinamicamente un set di tag

Un caso d'uso comune è raccogliere tag o identificatori univoci mentre un programma è in esecuzione:

Raccogliere tag univoci con un set

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'}

Rimuovere duplicati durante l'accumulo di dati

Poiché add() ignora silenziosamente i duplicati, puoi usare un set come accumulatore per deduplicare elementi provenienti da più sorgenti:

Deduplicare elementi da due liste usando un set

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]

Punti chiave

  • I set memorizzano solo elementi unici; add() e update() non creano mai duplicati.
  • I set sono non ordinati — l'ordine di inserimento non viene preservato e può variare tra le esecuzioni.
  • add() inserisce esattamente un elemento hashable; update() inserisce tutti gli elementi da qualsiasi numero di iterabili.
  • Entrambi i metodi restituiscono None e modificano il set in-place.
  • Per combinare due set in un nuovo set senza modificarne nessuno, usa union() (vedi Set Methods).

Esercitazione

Pratica
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?