Set en Python

 

Set en Python

Un set (conjunto) en Python es una estructura de datos que almacena elementos únicos y no ordenados. Te explico sus características principales:

Características principales

  • Elementos únicos: No permite duplicados

  • No ordenado: Los elementos no tienen un orden específico

  • Mutable: Puedes añadir y eliminar elementos

  • No indexado: No puedes acceder a elementos por índice

Crear un set

python
# Método 1: Usando llaves {}
mi_set = {1, 2, 3, 4, 5}
print(mi_set)  # {1, 2, 3, 4, 5}

# Método 2: Usando la función set()
otro_set = set([1, 2, 3, 2, 1])  # Los duplicados se eliminan
print(otro_set)  # {1, 2, 3}

# Set vacío (¡cuidado! {} crea un diccionario)
set_vacio = set()

Operaciones comunes

Añadir elementos

python
mi_set = {1, 2, 3}
mi_set.add(4)
print(mi_set)  # {1, 2, 3, 4}

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

Eliminar elementos

python
mi_set = {1, 2, 3, 4, 5}

mi_set.remove(3)  # Elimina el elemento 3
# mi_set.remove(10)  # Error si el elemento no existe

mi_set.discard(2)  # Elimina el elemento 2, no da error si no existe
mi_set.discard(10)  # No hace nada

elemento = mi_set.pop()  # Elimina y retorna un elemento aleatorio
print(f"Elemento eliminado: {elemento}")

mi_set.clear()  # Elimina todos los elementos

Operaciones de conjuntos

python
A = {1, 2, 3, 4}
B = {3, 4, 5, 6}

# Unión
print(A | B)  # {1, 2, 3, 4, 5, 6}
print(A.union(B))  # {1, 2, 3, 4, 5, 6}

# Intersección
print(A & B)  # {3, 4}
print(A.intersection(B))  # {3, 4}

# Diferencia
print(A - B)  # {1, 2}
print(A.difference(B))  # {1, 2}

# Diferencia simétrica
print(A ^ B)  # {1, 2, 5, 6}
print(A.symmetric_difference(B))  # {1, 2, 5, 6}

Métodos útiles

python
mi_set = {1, 2, 3, 4}

# Verificar si un elemento existe
print(2 in mi_set)  # True
print(5 in mi_set)  # False

# Tamaño del set
print(len(mi_set))  # 4

# Copiar un set
copia_set = mi_set.copy()

# Verificar subconjuntos
A = {1, 2}
B = {1, 2, 3, 4}
print(A.issubset(B))  # True
print(B.issuperset(A))  # True

Casos de uso comunes

Eliminar duplicados de una lista

python
lista_con_duplicados = [1, 2, 2, 3, 4, 4, 5]
lista_sin_duplicados = list(set(lista_con_duplicados))
print(lista_sin_duplicados)  # [1, 2, 3, 4, 5]

Verificar elementos únicos

python
palabras = ["hola", "mundo", "hola", "python"]
palabras_unicas = set(palabras)
print(palabras_unicas)  # {'hola', 'mundo', 'python'}

Set vs List vs Tuple

CaracterísticaSetListTuple
Ordenado
Mutable
Permite duplicados
Indexado

Los sets son especialmente útiles cuando necesitas:

  • Eliminar duplicados

  • Verificar pertenencia rápidamente

  • Realizar operaciones matemáticas de conjuntos

Comentarios

Entradas populares de este blog

¿Qué es un Closure?

4 tipos de colecciones de datos más

Funciones en Python: con y sin paréntesis