W3docs

Agregar elementos a un conjunto

Aprende a agregar elementos a un conjunto de Python con add() para un solo elemento y update() para varios valores de cualquier iterable.

Los conjuntos de Python son colecciones desordenadas de elementos únicos. Una vez creado un conjunto, puedes ampliarlo en cualquier momento usando dos métodos dedicados: add() para insertar un solo elemento y update() para insertar varios elementos a la vez desde cualquier iterable. Este capítulo cubre ambos métodos en profundidad, explica cuándo usar cada uno y destaca los errores más comunes.

Si eres nuevo en los conjuntos, lee primero el capítulo Python Sets. Para aprender a eliminar elementos, consulta Remove Set Items.

El método add()

add() inserta un elemento en el conjunto. Si el elemento ya existe, el conjunto no cambia — no se genera ningún error ni se crea un duplicado.

Sintaxis

set.add(element)
  • element — el valor a insertar. Debe ser hashable (strings, números, tuplas de valores hashable, etc.). Las listas y los diccionarios no se pueden agregar.
  • Valor de retorno: None. El conjunto se modifica en su lugar.

Agregar un nuevo elemento

Agregar un string a un conjunto

python— editable, runs on the server

Agregar un duplicado es seguro

Llamar a add() con un elemento que ya existe no hace nada — el conjunto mantiene el mismo tamaño:

Agregar un elemento duplicado a un conjunto

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

Esta es una de las propiedades más útiles de los conjuntos: nunca tienes que comprobar si un elemento existe antes de agregarlo.

add() solo acepta un argumento

add() toma exactamente un argumento. Para insertar varios elementos a la vez, usa update() en su lugar (consulta la siguiente sección).

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

add() requiere un elemento hashable

Solo los tipos hashable pueden almacenarse en un conjunto. Las listas y los diccionarios no son hashable, por lo que pasarlos 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)}

El método update()

update() agrega todos los elementos de uno o más iterables al conjunto en una sola llamada. Acepta cualquier iterable — otro conjunto, una lista, una tupla o incluso un string.

Sintaxis

set.update(iterable1, iterable2, ...)
  • Se puede pasar uno o más iterables.
  • Los duplicados entre el conjunto existente y los nuevos elementos se ignoran silenciosamente.
  • Valor de retorno: None. El conjunto se modifica en su lugar.

Agregar elementos desde una lista

Actualizar un conjunto desde una lista

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

Agregar elementos desde otro conjunto

Combinar dos conjuntos con update()

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

Ten en cuenta que update() modifica set1 en su lugar, mientras que union() devuelve un nuevo conjunto sin modificar ninguno de los originales.

Agregar desde varios iterables a la vez

Puedes pasar varios iterables a una sola llamada de update():

Actualizar un conjunto desde varios iterables

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

Pasar un string a update()

Como un string es iterable, update() lo divide en caracteres individuales. Esto generalmente no es lo que deseas, así que ten cuidado:

Actualizar con un string — agrega caracteres individuales

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

Para agregar un string completo como un solo elemento, usa add() en su lugar.

add() vs update() — Comparación rápida

add()update()
Número de elementosUnoVarios
Tipo de argumentoUn único valor hashableCualquier iterable (lista, conjunto, tupla, …)
¿Modifica el conjunto en su lugar?
DevuelveNoneNone

Ejemplos prácticos

Construir un conjunto de etiquetas dinámicamente

Un caso de uso común es recopilar etiquetas o identificadores únicos mientras se ejecuta un programa:

Recopilar etiquetas únicas con un conjunto

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

Eliminar duplicados al acumular datos

Dado que add() ignora silenciosamente los duplicados, puedes usar un conjunto como acumulador para deduplicar elementos de múltiples fuentes:

Deduplicar elementos de dos listas usando un conjunto

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]

Puntos clave

  • Los conjuntos almacenan solo elementos únicos; add() y update() nunca crean duplicados.
  • Los conjuntos son desordenados — el orden de inserción no se conserva y puede variar entre ejecuciones.
  • add() inserta exactamente un elemento hashable; update() inserta todos los elementos de cualquier número de iterables.
  • Ambos métodos devuelven None y mutan el conjunto en su lugar.
  • Para combinar dos conjuntos en un nuevo conjunto sin modificar ninguno de los dos, usa union() (consulta Set Methods).

Práctica

Práctica
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?