2 usuarios conectados

Tipos y estructuras de datos en Python. Conjuntos

Comparte esto

Ahora vamos a explorar los conjuntos (set) en Python. Los conjuntos son colecciones desordenadas de elementos únicos. Esto significa que un conjunto no puede contener duplicados y el orden de los elementos no está garantizado.

Creación de Conjuntos:

Hay dos formas principales de crear conjuntos en Python:

  1. Usando llaves {}: Se encierran los elementos separados por comas dentro de llaves. Sin embargo, para crear un conjunto vacío, debes usar set(), ya que {} crea un diccionario vacío.

    Python
     
    conjunto_vacio = set()
    conjunto_numeros = {1, 2, 3, 4, 5}
    conjunto_cadenas = {"manzana", "banana", "cereza"}
    conjunto_mixto = {1, "hola", 3.14, True}
    conjunto_con_duplicados = {1, 2, 2, 3, 3, 3}
    print(conjunto_con_duplicados)  # {1, 2, 3} (los duplicados se eliminan automáticamente)
    
  2. Usando la función set(): Se puede convertir un iterable (como una lista, tupla o cadena) en un conjunto. Los duplicados se eliminarán durante la conversión.

    Python
     
    lista = [1, 2, 2, 3, 4, 4, 5]
    conjunto_desde_lista = set(lista)  # {1, 2, 3, 4, 5}
    
    tupla = (10, 20, 20, 30)
    conjunto_desde_tupla = set(tupla)  # {10, 20, 30}
    
    cadena = "abracadabra"
    conjunto_desde_cadena = set(cadena)  # {'a', 'b', 'r', 'c', 'd'} (el orden puede variar)
    

Operaciones con Conjuntos:

Los conjuntos en Python admiten varias operaciones matemáticas de conjuntos:

  1. Unión (| o union()): Devuelve un nuevo conjunto que contiene todos los elementos de ambos conjuntos.

    Python
     
    conjunto_a = {1, 2, 3}
    conjunto_b = {3, 4, 5}
    
    union_ab = conjunto_a | conjunto_b
    print(union_ab)  # {1, 2, 3, 4, 5}
    
    union_ab_metodo = conjunto_a.union(conjunto_b)
    print(union_ab_metodo)  # {1, 2, 3, 4, 5}
    
  2. Intersección (& o intersection()): Devuelve un nuevo conjunto que contiene solo los elementos comunes a ambos conjuntos.

    Python
     
    conjunto_a = {1, 2, 3}
    conjunto_b = {3, 4, 5}
    
    interseccion_ab = conjunto_a & conjunto_b
    print(interseccion_ab)  # {3}
    
    interseccion_ab_metodo = conjunto_a.intersection(conjunto_b)
    print(interseccion_ab_metodo)  # {3}
    
  3. Diferencia (- o difference()): Devuelve un nuevo conjunto que contiene los elementos que están en el primer conjunto pero no en el segundo 1 conjunto.  

    Python
     
    conjunto_a = {1, 2, 3}
    conjunto_b = {3, 4, 5}
    
    diferencia_ab = conjunto_a - conjunto_b
    print(diferencia_ab)  # {1, 2}
    
    diferencia_ab_metodo = conjunto_a.difference(conjunto_b)
    print(diferencia_ab_metodo)  # {1, 2}
    
    diferencia_ba = conjunto_b - conjunto_a
    print(diferencia_ba)  # {4, 5}
    
    diferencia_ba_metodo = conjunto_b.difference(conjunto_a)
    print(diferencia_ba_metodo)  # {4, 5}
    
  4. Diferencia Simétrica (^ o symmetric_difference()): Devuelve un nuevo conjunto que contiene los elementos que están en uno de los conjuntos, pero no en ambos.

    Python
     
    conjunto_a = {1, 2, 3}
    conjunto_b = {3, 4, 5}
    
    diferencia_simetrica_ab = conjunto_a ^ conjunto_b
    print(diferencia_simetrica_ab)  # {1, 2, 4, 5}
    
    diferencia_simetrica_ab_metodo = conjunto_a.symmetric_difference(conjunto_b)
    print(diferencia_simetrica_ab_metodo)  # {1, 2, 4, 5}
    

Otros Métodos de Conjuntos:

Además de las operaciones de conjuntos, existen otros métodos útiles:

Los conjuntos son muy útiles cuando necesitas trabajar con colecciones de elementos únicos y realizar operaciones de conjuntos de manera eficiente. Su naturaleza desordenada los hace inadecuados para situaciones donde el orden de los elementos es importante.