Resumen

Domina los conjuntos en Python con ejemplos claros y prácticos. Aprende qué es un set, cómo evitar duplicados de forma automática y cuáles son los métodos clave para agregar, buscar, eliminar y combinar elementos. Además, entiende por qué el orden no está garantizado y cómo aprovechar operaciones como unión, intersección y diferencia.

¿Qué es un conjunto (set) en Python y cómo funciona?

Un conjunto es una colección no ordenada y sin duplicados. Es ideal para asegurar unicidad y realizar operaciones de teoría de conjuntos.

  • Se define con llaves y elementos separados por comas.
  • Ignora automáticamente los duplicados al crearlo o actualizarlo.
  • Reporta el tamaño real sin contar repetidos.

Ejemplo con frutas y un duplicado:

frutas = {"manzana", "naranja", "mandarina", "naranja"}
print(frutas)        # {'manzana', 'naranja', 'mandarina'} (el duplicado se ignora)
print(type(frutas))  # 
print(len(frutas))   # 3

¿Cómo se comporta el orden y la mutabilidad en sets?

  • El orden de iteración es arbitrario: no te garantiza posiciones ni índices.
  • Es una estructura mutable: puedes agregar o quitar elementos.
  • No puedes modificar un elemento puntual por índice porque no hay orden.
for item in frutas:
    print(item)  # Puede salir en cualquier orden.

¿Se pueden mezclar tipos de datos en un set?

Sí. Puedes tener strings, números y booleanos en el mismo conjunto.

conjunto = {"Python", 156, True}
print(conjunto)      # Orden no garantizado.
print(type(conjunto))# 

¿Cómo agregar, buscar y eliminar elementos en sets?

Primero, verifica pertenencia con el operador in:

print("manzana" in frutas)  # True
print("pera" in frutas)     # False

Para agregar elementos:

  • Agrega uno con add.
  • Agrega varios con update (admite otro set, una lista o una tupla).
frutas.add("pera")
frutas_tropicales = {"piña", "mango"}
frutas.update(frutas_tropicales)  # también funciona con listas o tuplas
print(frutas)

Para eliminar elementos individuales:

  • remove elimina y lanza error si el elemento no existe.
  • discard elimina y no lanza error si no existe.
frutas.remove("mango")   # ok si "mango" está; error si no.
frutas.discard("pera")   # ok esté o no esté "pera".

¿Qué diferencia hay entre remove y discard en Python?

  • remove: exige que el elemento exista; de lo contrario, produce error.
  • discard: ignora la instrucción si el elemento no está; no hay error.
  • Úsalo según necesites estrictitud o tolerancia al eliminar.

¿Qué hace pop y clear en un set?

  • pop: elimina y devuelve un elemento aleatorio. Úsalo con cuidado si necesitas reproducibilidad.
  • clear: vacía por completo el conjunto.
eliminado = frutas.pop()  # elemento al azar
print(eliminado)
frutas.clear()
print(frutas)             # set()

¿Qué operaciones entre conjuntos existen y para qué sirven?

Las operaciones clásicas de teoría de conjuntos permiten combinar y comparar colecciones de forma directa.

  • Unión: todos los elementos de ambos conjuntos, sin duplicados.
  • Intersección: solo los elementos en común.
  • Diferencia: elementos de un conjunto que no están en el otro.
A = {"A", "B", "C"}
B = {"C", "D", "E"}

C_union = A.union(B)             # {'A', 'B', 'C', 'D', 'E'}
I_inter = A.intersection(B)      # {'C'}
D_diff  = A.difference(B)        # {'A', 'B'}

print(C_union)
print(I_inter)
print(D_diff)

¿Cómo eliminar duplicados con sets desde listas o tuplas?

Convierte a set para quitar repetidos y vuelve al tipo original si lo necesitas.

numeros = [1, 2, 2, 3, 3, 3]
unicos = list(set(numeros))
print(unicos)  # [1, 2, 3] (el orden puede variar)

¿Te quedó alguna duda sobre add, update, remove, discard, pop, clear o las operaciones de unión, intersección y diferencia? Comparte tu pregunta o tu caso práctico y seguimos la conversación.