3 usuarios conectados

Tipos y estructuras de datos en Python. Conjuntos. Ejercicios

Comparte esto

Ejercicio 1: Creación de Conjuntos

  1. Crea un conjunto llamado frutas que contenga las siguientes cadenas: "manzana", "banana", "naranja".
  2. Crea un conjunto llamado numeros que contenga los números enteros del 1 al 5.
  3. Crea un conjunto vacío llamado colores. ¿Cómo se crea un conjunto vacío?
  4. Crea un conjunto llamado letras a partir de la cadena "abracadabra". ¿Qué elementos contendrá el conjunto?
  5. Crea un conjunto llamado mezclado que contenga un entero, una cadena, un número decimal y un booleano.

Ejercicio 2: Adición y Eliminación de Elementos

  1. Dado el conjunto frutas del Ejercicio 1, agrega la fruta "uva".
  2. Dado el conjunto numeros del Ejercicio 1, agrega el número 6.
  3. Dado el conjunto colores del Ejercicio 1, agrega los colores "rojo", "verde" y "azul".
  4. Dado el conjunto frutas actualizado, intenta agregar la fruta "banana" nuevamente. ¿Qué sucede?
  5. Dado el conjunto numeros actualizado, elimina el número 3.
  6. Dado el conjunto colores actualizado, intenta eliminar el color "amarillo". ¿Qué sucede? Utiliza el método discard() para eliminar "amarillo" del conjunto colores. ¿Qué sucede ahora?

Ejercicio 3: Operaciones con Conjuntos

  1. Crea dos conjuntos:
    Python
     
    set1 = {1, 2, 3, 4, 5}
    set2 = {4, 5, 6, 7, 8}
    
    Encuentra la unión de set1 y set2.
  2. Encuentra la intersección de set1 y set2.
  3. Encuentra la diferencia de set1 con respecto a set2 (elementos en set1 que no están en set2).
  4. Encuentra la diferencia simétrica de set1 y set2 (elementos que están en uno u otro conjunto, pero no en ambos).
  5. Verifica si set1 es un subconjunto de {1, 2, 3, 4, 5, 6}.
  6. Verifica si {1, 2, 3, 4, 5, 6} es un superconjunto de set1.

Ejercicio 4: Métodos de Conjuntos

  1. Dado el conjunto frutas actualizado, utiliza el método pop() para eliminar y devolver un elemento arbitrario del conjunto.
  2. Dado el conjunto numeros actualizado, utiliza el método clear() para eliminar todos los elementos del conjunto.
  3. Crea dos conjuntos:
    Python
     
    conjunto_a = {1, 2, 3}
    conjunto_b = {3, 4, 5}
    
    Utiliza el método union() para crear un nuevo conjunto con la unión de conjunto_a y conjunto_b.
  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.
  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.
  6. Utiliza el método symmetric_difference_update() para modificar conjunto_b para que contenga la diferencia simétrica con el conjunto_a original.
  7. Verifica si conjunto_a (después de las modificaciones) es disjunto de {6, 7, 8} utilizando el método isdisjoint().
     


Mostrar/Ocultar ejercicios resueltos


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}")