Ejercicio 12 Operaciones con Conjuntos (Colecciones)

Vamos a escribir el Ejercicio 12 Operaciones con Conjuntos. Es recomendable que este ejercicio lo escribas (trata de no copiarlo y pegarlo), lo ejecutas y revisas el resultado esperado. Después utiliza el debugger para ejecutar el programa paso por paso.

"""
Ejercicio 12 Conjuntos Operaciones
04/09/2025
Edito AHR
"""
# Python al revisar que la informacion que estan entre parentesis {1, 2, 3} y que no tiene ':' asume que es un conjunto
# Python proporciona varias operaciones para trabajar con conjuntos, como unión, intersección, diferencia y diferencia simétrica.
# Crear dos conjuntos
conjuntoA = {1, 2, 3, 4, 5}
conjuntoB = {4, 5, 6, 7, 8}

# Unión de conjuntos
union = conjuntoA | conjuntoB
print("Unión:", union)

# Intersección de conjuntos
interseccion = conjuntoA & conjuntoB
print("Intersección:", interseccion)

# Diferencia de conjuntos
diferencia = conjuntoA - conjuntoB
print("Diferencia:", diferencia)

# Diferencia simétrica de conjuntos
diferencia_simetrica = conjuntoA ^ conjuntoB
print("Diferencia simétrica:", diferencia_simetrica)

# Verifiacr si dos conjuntos son disjuntos (no tienen elementos en común)
conjuntoC = {1, 2, 3}   
conjuntoD = {4, 5, 6}
son_disjuntos = conjuntoC.isdisjoint(conjuntoD)
print("¿Son disjuntos conjuntoC y conjuntoD?", son_disjuntos)

# Verifiacar si dos conjuntos son subconjuntos o superconjuntos
conjuntoE = {1, 2}
conjuntoF = {1, 2, 3}
es_subconjunto = conjuntoE.issubset(conjuntoF)
es_superconjunto = conjuntoF.issuperset(conjuntoE)
print("¿Es conjuntoE un subconjunto de conjuntoF?", es_subconjunto)
print("¿Es conjuntoF un superconjunto de conjuntoE?", es_superconjunto) 

# Actualizar un conjunto con la unión, intersección, diferencia o diferencia simétrica con otro conjunto
conjuntoG = {1, 2, 3}
conjuntoH = {3, 4, 5}
conjuntoG.update(conjuntoH)  # Unión
print("ConjuntoG después de la unión con conjuntoH:", conjuntoG)
conjuntoG.intersection_update({2, 3, 4})  # Intersección
print("ConjuntoG después de la intersección con {2, 3, 4}:", conjuntoG)
conjuntoG.difference_update({3})  # Diferencia
print("ConjuntoG después de la diferencia con {3}:", conjuntoG)
conjuntoG.symmetric_difference_update({1, 4})  # Diferencia simétrica
print("ConjuntoG después de la diferencia simétrica con {1, 4}:", conjuntoG)    

# Verificar si dos conjuntos son iguales
conjuntoI = {1, 2, 3}
conjuntoJ = {3, 2, 1}
son_iguales = conjuntoI == conjuntoJ
print("¿Son iguales conjuntoI y conjuntoJ?", son_iguales)

# Verificar si dos conjuntos no son iguales
conjuntoK = {1, 2, 3}
conjuntoL = {4, 5, 6}
son_diferentes = conjuntoK != conjuntoL
print("¿Son diferentes conjuntoK y conjuntoL?", son_diferentes)

# Conjuntos inmutables (frozenset)
conjunto_inmutable = frozenset([1, 2, 3, 4, 5])
print("Conjunto inmutable:", conjunto_inmutable)
print("Tipo de conjunto inmutable:", type(conjunto_inmutable))
# Intentar agregar un elemento a un conjunto inmutable (esto generará un error)
# conjunto_inmutable.add(6) # El método add() no está disponible para frozenset
# Intentar eliminar un elemento de un conjunto inmutable (esto generará un error)
# conjunto_inmutable.remove(1) # El método remove() no está disponible para frozenset

Veamos los resultados en la consola:

PS C:\Users\/Codigo/Modulo 3/Capitulo_2/Ejercicio_12_Conjuntos_Operaciones.py"
Unión: {1, 2, 3, 4, 5, 6, 7, 8}
Intersección: {4, 5}
Diferencia: {1, 2, 3}
Diferencia simétrica: {1, 2, 3, 6, 7, 8}
¿Son disjuntos conjuntoC y conjuntoD? True
¿Es conjuntoE un subconjunto de conjuntoF? True
¿Es conjuntoF un superconjunto de conjuntoE? True
ConjuntoG después de la unión con conjuntoH: {1, 2, 3, 4, 5}
ConjuntoG después de la intersección con {2, 3, 4}: {2, 3, 4}
ConjuntoG después de la diferencia con {3}: {2, 4}
ConjuntoG después de la diferencia simétrica con {1, 4}: {1, 2}
¿Son iguales conjuntoI y conjuntoJ? True
¿Son diferentes conjuntoK y conjuntoL? True
Conjunto inmutable: frozenset({1, 2, 3, 4, 5})
Tipo de conjunto inmutable: <class 'frozenset'>