Ejercicio 11 Conjuntos (Colecciones).

Vamos a escribir el Ejercicio 11 Conjunto, un tipo de Colecciones. 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 11 Conjuntos
04/09/2025
Edito AHR
"""
# Los conjuntos son colecciones desordenadas de elementos únicos (no se permiten duplicados)
# Se definen con llaves {} o con la función set()
# No se pueden accesar a traves de un indice, de hay que se diga que son desordenados
conjunto2 = set([1, 2, 3, 4, 5])  # Crear un conjunto. Nota: no se pueden crear conjuntos vacíos con {}, ya que eso crea un diccionario vacío
print("Imprimiendo conjunto2:", conjunto2)
print("Tipo de conjunto:", type(conjunto2))
conjunto = {1, 2, 3, 4, 5}  # Crear un conjunto con llaves {}
print("Imprimiendo conjunto:", conjunto)  
print("Tipo de conjunto:", type(conjunto))
print("Longitud de conjunto:", len(conjunto))

# Crear un conjunto vacío
conjunto_vacio = set()
conjunto_error = {}  # Esto crea un diccionario vacío, no un conjunto
print("Imprimiendo conjunto vacío:", conjunto_vacio)
print("Tipo de conjunto vacío:", type(conjunto_vacio))
print("Longitud de conjunto vacío:", len(conjunto_vacio))

# Crear un conjunto con diferentes tipos de datos
conjunto1 = {1, 2.5, "Hola", True, (4, 5)}  # Los conjuntos pueden contener diferentes tipos de datos, pero no listas ni diccionarios
print("Imprimiendo conjunto1:", conjunto1)  # Imprime el conjunto con diferentes tipos de datos
print(type(conjunto1))  # Imprime <class 'set'>
print(len(conjunto1))  # Imprime 5, ya que el conjunto tiene 5 elementos (el 2.5 y True se consideran iguales)

# Acceder a elementos del conjunto (no se puede hacer, ya que los conjuntos son desordenados)

# Intentar modificar un elemento del conjunto (esto generará un error)

# Agregar elementos al conjunto
print("Imprime la variable conjunto:", conjunto)
conjunto.add(6)
print(conjunto)  # Imprime {1, 2, 3, 4, 5, 6}
conjunto.update([7, 8, 9])
print(conjunto)  # Imprime {1, 2, 3, 4, 5, 6, 7, 8, 9}
conjunto.add(3)  # No se agrega, ya que el 3 ya está en el conjunto
print(conjunto)  # Imprime {1, 2, 3, 4, 5, 6, 7, 8, 9}
conjunto.add('a') # Se agrega el elemento 'a', ya que no está en el conjunto
print(conjunto)  # Imprime {1, 2, 3, 4, 5, 6, 7, 8, 9, 'a'}
conjunto.add(-3) # Se agrega el elemento -3, ya que no está en el conjunto
print(conjunto)  # Imprime {1, 2, 3, 4, 5, 6, 7, 8, 9, 'a', -3}
conjunto.add(10) # Se agrega el elemento 10, ya que no está en el conjunto
print(conjunto)  # Imprime {1, 2, 3, 4, 5, 6, 7, 8, 9, 'a', -3, 10}

# Eliminar elementos del conjunto
conjunto.remove(9) # El método remove() elimina un elemento del conjunto. Arroja un error si el elemento no está en el conjunto
print(conjunto)  # Imprime {1, 2, 3, 4, 5, 6, 7, 8}
conjunto.discard(8) # El método discard() elimina un elemento del conjunto. No arroja un error si el elemento no está en el conjunto
print(conjunto)  # Imprime {1, 2, 3, 4, 5, 6, 7}

# Eliminar todos los elementos del conjunto
conjunto.clear() # El método clear() elimina todos los elementos del conjunto
print(conjunto)  # Imprime set(), un conjunto vacío

# Verificar si un elemento está en el conjunto
conjunto3 = {1, 2, 3, 4, 5}
print(3 in conjunto3)  # Imprime True
print(6 in conjunto3)  # Imprime False  

# Verificar si un elemento no está en el conjunto
print(3 not in conjunto3)  # Imprime False
print(6 not in conjunto3)  # Imprime True

Veamos los resultados en la consola:

PS C:\Users\Codigo/Modulo 3/Capitulo_2/Ejrcicio_11_Conjuntos.py"
Imprimiendo conjunto2: {1, 2, 3, 4, 5}
Tipo de conjunto: <class 'set'>
Imprimiendo conjunto: {1, 2, 3, 4, 5}
Tipo de conjunto: <class 'set'>
Longitud de conjunto: 5
Imprimiendo conjunto vacío: set()
Tipo de conjunto vacío: <class 'set'>
Longitud de conjunto vacío: 0
Imprimiendo conjunto1: {1, (4, 5), 2.5, 'Hola'}
<class 'set'>
4
Imprime la variable conjunto: {1, 2, 3, 4, 5}
{1, 2, 3, 4, 5, 6}
{1, 2, 3, 4, 5, 6, 7, 8, 9}
{1, 2, 3, 4, 5, 6, 7, 8, 9}
{1, 2, 3, 4, 5, 6, 7, 8, 9, 'a'}
{1, 2, 3, 4, 5, 6, 7, 8, 9, 'a', -3}
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 'a', -3}
{1, 2, 3, 4, 5, 6, 7, 8, 10, 'a', -3}
{1, 2, 3, 4, 5, 6, 7, 10, 'a', -3}
set()
True
False
False
True