Contenido
Un set es una colección desordenada, mutable y sin elementos duplicados.
- No mantiene orden
- No permite duplicados
- Es mutable
- Permite operaciones matemáticas (unión, intersección, diferencia)
- Muy eficiente en búsquedas
Crear un conjunto
mi_conjunto = {1, 2, 3, 4, 5}
También usando el constructor:
mi_conjunto = set([1, 2, 3, 4, 5])
Conjunto vacío
⚠ {} crea un diccionario, no un set.
conjunto_vacio = set()
Características importantes
- No tienen índices
- No permiten slicing
- No mantienen orden
- Solo aceptan elementos inmutables (no listas, no diccionarios)
# Esto da error
mi_set = {[1,2,3]}
Métodos principales
Agregar elementos
s = {1,2,3}
s.add(4)
Eliminar elementos
remove(x)
Error si no existe.
s.remove(2)
discard(x)
No error si no existe.
s.discard(10)
pop()
Elimina elemento aleatorio.
s.pop()
clear()
s.clear()
Operaciones matemáticas de conjuntos
Sean:
a = {1,2,3}
b = {3,4,5}
Unión (elementos de ambos)
a | b
a.union(b)
Resultado → {1,2,3,4,5}
Intersección (elementos comunes)
a & b
a.intersection(b)
Resultado → {3}
Diferencia (elementos de A que no están en B)
a - b
a.difference(b)
Resultado → {1,2}
Diferencia simétrica (elementos que NO son comunes)
a ^ b
a.symmetric_difference(b)
Resultado → {1,2,4,5}
Relaciones entre conjuntos
Subconjunto
{1,2}.issubset({1,2,3})
Superconjunto
{1,2,3}.issuperset({1,2})
Sin elementos en común
{1,2}.isdisjoint({3,4})
Comprobar pertenencia
3 in {1,2,3}
10 in {1,2,3}
Esta operación es muy rápida (O(1)).
Convertir entre estructuras
Lista → Set (eliminar duplicados)
lista = [1,2,2,3,4,4]
sin_dup = set(lista)
Set → Lista
lista = list(sin_dup)
Copiar conjuntos
copia = mi_conjunto.copy()
Recorrer conjuntos
for elemento in {1,2,3}:
print(elemento)
El orden puede cambiar.
Ejemplo práctico
conjunto1 = {1,2,3,4}
conjunto2 = {3,4,5,6}print(conjunto1 | conjunto2)
print(conjunto1 & conjunto2)
print(conjunto1 - conjunto2)
print(conjunto1 ^ conjunto2)conjunto1.add(7)
conjunto1.discard(2)print(conjunto1)
Cuándo usar conjuntos
Usa sets cuando:
- Necesites eliminar duplicados
- Quieras operaciones matemáticas
- Necesites búsquedas rápidas
- No importe el orden
Errores comunes
Intentar indexar un set:
s = {1,2,3}
print(s[0]) # Error
Intentar meter listas o diccionarios dentro.
Tabla de métodos principales
| Método | Qué hace | Ejemplo | Resultado |
|---|---|---|---|
add(x) | Añade elemento | {1,2}.add(3) | {1,2,3} |
remove(x) | Elimina (error si no existe) | {1,2}.remove(2) | {1} |
discard(x) | Elimina sin error | {1,2}.discard(5) | {1,2} |
pop() | Elimina elemento aleatorio | {1,2}.pop() | {2} o {1} |
clear() | Vacía el conjunto | s.clear() | set() |
union() | Unión | a.union(b) | {1,2,3,4,5} |
intersection() | Intersección | a.intersection(b) | {3} |
difference() | Diferencia | a.difference(b) | {1,2} |
symmetric_difference() | Diferencia simétrica | a.symmetric_difference(b) | {1,2,4,5} |
issubset() | Subconjunto | {1}.issubset({1,2}) | True |
issuperset() | Superconjunto | {1,2}.issuperset({1}) | True |
isdisjoint() | Sin comunes | {1}.isdisjoint({2}) | True |
copy() | Copia superficial | s.copy() | nuevo set |
Ejercicios
- Elimina duplicados de una lista usando set.
- Calcula intersección entre dos listas convertidas a set.
- Comprueba si un conjunto es subconjunto de otro.
- Crea dos sets y calcula diferencia simétrica.
- Cuenta elementos únicos en una lista grande.










