Ejercicio 1: Creación de Conjuntos
# 1. Crea un conjunto llamado frutas que contenga las siguientes
cadenas: "manzana", "banana", "naranja".
frutas = {"manzana", "banana", "naranja"}
print(f"Conjunto de frutas: {frutas}")
# 2. Crea un conjunto llamado numeros que contenga los números enteros del 1 al
5.
numeros = {1, 2, 3, 4, 5}
print(f"Conjunto de números: {numeros}")
# 3. Crea un conjunto vacío llamado colores. ¿Cómo se crea un conjunto vacío?
colores = set()
print(f"Conjunto de colores (vacío): {colores}")
# Un conjunto vacío se crea utilizando la función set(). Usar {} crearía un
diccionario vacío.
# 4. Crea un conjunto llamado letras a partir de la cadena "abracadabra". ¿Qué
elementos contendrá el conjunto?
letras = set("abracadabra")
print(f"Conjunto de letras: {letras}")
# El conjunto contendrá los caracteres únicos de la cadena: {'a', 'b', 'r', 'c',
'd'}.
# 5. Crea un conjunto llamado mezclado que contenga un entero, una cadena, un
número decimal y un booleano.
mezclado = {10, "texto", 3.14, True}
print(f"Conjunto mezclado: {mezclado}")
# Los conjuntos pueden contener elementos de diferentes tipos inmutables.
Ejercicio 2: Adición y Eliminación de
Elementos
# Dado el conjunto frutas del Ejercicio 1: frutas = {"manzana", "banana",
"naranja"}
frutas = {"manzana", "banana", "naranja"}
# 1. Agrega la fruta "uva".
frutas.add("uva")
print(f"Conjunto de frutas después de add('uva'): {frutas}")
# Dado el conjunto numeros del Ejercicio 1: numeros = {1, 2, 3, 4, 5}
numeros = {1, 2, 3, 4, 5}
# 2. Agrega el número 6.
numeros.add(6)
print(f"Conjunto de números después de add(6): {numeros}")
# Dado el conjunto colores del Ejercicio 1: colores = set()
colores = set()
# 3. Agrega los colores "rojo", "verde" y "azul".
colores.add("rojo")
colores.add("verde")
colores.add("azul")
print(f"Conjunto de colores después de agregar: {colores}")
# Dado el conjunto frutas actualizado: frutas = {"manzana", "banana", "naranja",
"uva"}
# 4. Intenta agregar la fruta "banana" nuevamente. ¿Qué sucede?
frutas.add("banana")
print(f"Conjunto de frutas después de intentar add('banana') nuevamente:
{frutas}")
# Resultado: El conjunto no se modifica, ya que los conjuntos no permiten
elementos duplicados.
# Dado el conjunto numeros actualizado: numeros = {1, 2, 3, 4, 5, 6}
# 5. Elimina el número 3.
numeros.remove(3)
print(f"Conjunto de números después de remove(3): {numeros}")
# Dado el conjunto colores actualizado: colores = {"rojo", "verde", "azul"}
# 6. Intenta eliminar el color "amarillo". ¿Qué sucede?
# colores.remove("amarillo")
# print(f"Conjunto de colores después de remove('amarillo'): {colores}")
# Resultado: Se produce un error KeyError porque "amarillo" no está en el
conjunto.
# Utiliza el método discard() para eliminar "amarillo" del conjunto colores.
¿Qué sucede ahora?
colores.discard("amarillo")
print(f"Conjunto de colores después de discard('amarillo'): {colores}")
# Resultado: El conjunto no se modifica y no se produce ningún error, ya que
discard() no hace nada si el elemento no existe.
Ejercicio 3: Operaciones con Conjuntos
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}
# 1. Encuentra la unión de set1 y set2.
union_set = set1.union(set2)
print(f"Unión de set1 y set2: {union_set}")
# Otra forma: union_set = set1 | set2
# print(f"Unión de set1 y set2 (con operador |): {union_set}")
# 2. Encuentra la intersección de set1 y set2.
interseccion_set = set1.intersection(set2)
print(f"Intersección de set1 y set2: {interseccion_set}")
# Otra forma: interseccion_set = set1 & set2
# print(f"Intersección de set1 y set2 (con operador &): {interseccion_set}")
# 3. Encuentra la diferencia de set1 con respecto a set2 (elementos en set1 que
no están en set2).
diferencia_set1 = set1.difference(set2)
print(f"Diferencia de set1 con respecto a set2: {diferencia_set1}")
# Otra forma: diferencia_set1 = set1 - set2
# print(f"Diferencia de set1 con respecto a set2 (con operador -): {diferencia_set1}")
# 4. Encuentra la diferencia simétrica de set1 y set2 (elementos que están en
uno u otro conjunto, pero no en ambos).
diferencia_simetrica_set = set1.symmetric_difference(set2)
print(f"Diferencia simétrica de set1 y set2: {diferencia_simetrica_set}")
# Otra forma: diferencia_simetrica_set = set1 ^ set2
# print(f"Diferencia simétrica de set1 y set2 (con operador ^): {diferencia_simetrica_set}")
# 5. Verifica si set1 es un subconjunto de {1, 2, 3, 4, 5, 6}.
es_subconjunto = set1.issubset({1, 2, 3, 4, 5, 6})
print(f"¿Es set1 un subconjunto de {{1, 2, 3, 4, 5, 6}}?: {es_subconjunto}")
# Otra forma: es_subconjunto = set1 <= {1, 2, 3, 4, 5, 6}
# print(f"¿Es set1 un subconjunto de {{1, 2, 3, 4, 5, 6}}? (con operador <=): {es_subconjunto}")
# 6. Verifica si {1, 2, 3, 4, 5, 6} es un superconjunto de set1.
es_superconjunto = {1, 2, 3, 4, 5, 6}.issuperset(set1)
print(f"¿Es {{1, 2, 3, 4, 5, 6}} un superconjunto de set1?: {es_superconjunto}")
# Otra forma: es_superconjunto = {1, 2, 3, 4, 5, 6} >= set1
# print(f"¿Es {{1, 2, 3, 4, 5, 6}} un superconjunto de set1? (con operador >=):
{es_superconjunto}")
Ejercicio 4: Métodos de Conjuntos
# Dado el conjunto frutas actualizado (después del Ejercicio 2): frutas =
{"manzana", "banana", "naranja", "uva"}
frutas = {"manzana", "banana", "naranja", "uva"}
# 1. Utiliza el método pop() para eliminar y devolver un elemento arbitrario del
conjunto.
elemento_eliminado_frutas = frutas.pop()
print(f"Conjunto de frutas después de pop(): {frutas}")
print(f"Elemento eliminado de frutas con pop(): {elemento_eliminado_frutas}")
# Nota: pop() elimina un elemento arbitrario, por lo que el resultado puede
variar.
# Dado el conjunto numeros actualizado (después del Ejercicio 2): numeros = {1,
2, 4, 5, 6}
numeros = {1, 2, 4, 5, 6}
# 2. Utiliza el método clear() para eliminar todos los elementos del conjunto.
numeros.clear()
print(f"Conjunto de números después de clear(): {numeros}")
# Crea dos conjuntos:
conjunto_a = {1, 2, 3}
conjunto_b = {3, 4, 5}
print(f"Conjunto a inicial: {conjunto_a}")
print(f"Conjunto b inicial: {conjunto_b}")
# 3. Utiliza el método union() para crear un nuevo conjunto con la unión de
conjunto_a y conjunto_b.
union_ab = conjunto_a.union(conjunto_b)
print(f"Unión de conjunto_a y conjunto_b (con union()): {union_ab}")
# 4. Utiliza el método intersection_update() para modificar conjunto_a para que
contenga solo los elementos que también están en conjunto_b.
conjunto_a.intersection_update(conjunto_b)
print(f"Conjunto a después de intersection_update(conjunto_b): {conjunto_a}")
# Ahora conjunto_a contendrá solo {3}.
# 5. Utiliza el método difference() para crear un nuevo conjunto con los
elementos que están en conjunto_b pero no en el conjunto_a original.
# El conjunto_a original era {1, 2, 3}.
conjunto_b_original = {3, 4, 5}
diferencia_ba = conjunto_b_original.difference({1, 2, 3})
print(f"Diferencia de conjunto_b con respecto al conjunto_a original (con
difference()): {diferencia_ba}")
# 6. Utiliza el método symmetric_difference_update() para modificar conjunto_b
para que contenga la diferencia simétrica con el conjunto_a original.
# El conjunto_a original era {1, 2, 3}. El conjunto_b actual es {3, 4, 5}.
conjunto_b.symmetric_difference_update({1, 2, 3})
print(f"Conjunto b después de symmetric_difference_update(conjunto_a original):
{conjunto_b}")
# Ahora conjunto_b contendrá {1, 2, 4, 5}.
# 7. Verifica si conjunto_a (después de las modificaciones en el paso 4, es
decir, {3}) es disjunto de {6, 7, 8} utilizando el método isdisjoint().
es_disjunto = conjunto_a.isdisjoint({6, 7, 8})
print(f"¿Es conjunto_a disjunto de {{6, 7, 8}}?: {es_disjunto}")