Python Tutorials

Conjuntos en Python: Guía Completa

Spread the love

Los conjuntos en Python son colecciones no ordenadas de elementos únicos. Esto significa que los valores duplicados se eliminan automáticamente y el orden en que se agregan los elementos no afecta a cómo se almacenan o recuperan. Los conjuntos son mutables (cambiables) por defecto, a menos que se utilice el tipo frozenset, que es inmutable.

Los conjuntos son particularmente útiles para tareas que requieren una prueba de pertenencia eficiente (comprobar si existe un elemento), eliminar duplicados de una lista y realizar operaciones de conjuntos como unión, intersección y diferencia.

Tabla de contenido

  1. Creando conjuntos
  2. Añadiendo y actualizando elementos
  3. Eliminando elementos
  4. Operaciones de conjuntos
  5. Métodos de conjuntos
  6. Otras operaciones de conjuntos
  7. Funciones integradas con conjuntos
  8. Conjuntos congelados (frozensets)

1. Creando conjuntos

Puedes crear conjuntos usando llaves {} o el constructor set(). Ten en cuenta que un conjunto vacío debe crearse usando set(); {} crea un diccionario vacío.


# Usando llaves
my_set = {1, 2, 3, 4, 5}
print(my_set)  # Salida: {1, 2, 3, 4, 5}

# Usando el constructor set()
another_set = set([6, 7, 8, 8])  # Los duplicados se eliminan automáticamente
print(another_set)  # Salida: {8, 6, 7}

empty_set = set()
print(empty_set)  # Salida: set()

Recuerda que los conjuntos no están ordenados, por lo que el orden de salida puede diferir del orden de entrada.

2. Añadiendo y actualizando elementos

Usa el método add() para añadir un solo elemento y el método update() para añadir varios elementos.


my_set = {1, 2, 3}
my_set.add(4)
print(my_set)  # Salida: {1, 2, 3, 4}

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

my_set.update({8, 9}, (10,))  # Actualizar con conjunto y tupla
print(my_set)  # Salida: {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}

3. Eliminando elementos

Varios métodos permiten la eliminación de elementos. remove() lanza un KeyError si el elemento no se encuentra, mientras que discard() no lo hace.


my_set = {1, 2, 3, 4, 5}

my_set.remove(3)  # Lanza KeyError si el elemento no se encuentra
print(my_set)  # Salida: {1, 2, 4, 5}

my_set.discard(6)  # No lanza un error si el elemento no se encuentra
print(my_set)  # Salida: {1, 2, 4, 5}

removed_element = my_set.pop()  # Elimina y devuelve un elemento arbitrario
print(removed_element)  # Salida: (un elemento aleatorio)
print(my_set)

my_set.clear()  # Elimina todos los elementos
print(my_set)  # Salida: set()

4. Operaciones de conjuntos

Los conjuntos admiten operaciones de conjuntos matemáticas estándar:


set1 = {1, 2, 3}
set2 = {3, 4, 5}

# Unión: combina elementos de ambos conjuntos
union_set = set1 | set2  # o set1.union(set2)
print(union_set)  # Salida: {1, 2, 3, 4, 5}

# Intersección: elementos presentes en ambos conjuntos
intersection_set = set1 & set2  # o set1.intersection(set2)
print(intersection_set)  # Salida: {3}

# Diferencia: elementos en set1 pero no en set2
difference_set = set1 - set2  # o set1.difference(set2)
print(difference_set)  # Salida: {1, 2}

# Diferencia simétrica: elementos en set1 o set2, pero no en ambos
symmetric_difference_set = set1 ^ set2  # o set1.symmetric_difference(set2)
print(symmetric_difference_set)  # Salida: {1, 2, 4, 5}

5. Métodos de conjuntos

Python ofrece muchos métodos integrados para la manipulación de conjuntos:


my_set = {1, 2, 3, 4, 5}

print(my_set.issubset({1, 2, 3, 4, 5, 6}))  # True
print(my_set.issuperset({1, 2}))  # True
print(my_set.isdisjoint({6, 7, 8}))  # True - sin elementos comunes
print(my_set.copy()) # crea una copia superficial del conjunto

6. Otras operaciones de conjuntos

Más allá de las operaciones básicas, puedes comprobar la pertenencia, encontrar la longitud y más:


my_set = {1, 2, 3}
print(1 in my_set)  # Salida: True
print(4 not in my_set)  # Salida: True
print(len(my_set))  # Salida: 3

7. Funciones integradas con conjuntos

Funciones como all(), any(), sum(), min(), max() funcionan con conjuntos:


my_set = {1, 2, 3, 4, 5}
print(sum(my_set))  # Salida: 15
print(min(my_set))  # Salida: 1
print(max(my_set))  # Salida: 5
print(all(x > 0 for x in my_set))  # Salida: True
print(any(x == 0 for x in my_set))  # Salida: False

8. Conjuntos congelados (frozensets)

frozenset crea un conjunto inmutable. Una vez creado, no puedes añadir ni eliminar elementos. Son útiles como claves de diccionario o elementos de otros conjuntos.


my_frozenset = frozenset({1, 2, 3})
# my_frozenset.add(4)  # Esto lanzará un AttributeError
print(my_frozenset)  # Salida: frozenset({1, 2, 3})

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *