Introducción

En este módulo, exploraremos dos estructuras de datos fundamentales en la programación: los diccionarios y los conjuntos. Estas estructuras son esenciales para manejar datos de manera eficiente y realizar operaciones comunes en muchos algoritmos y aplicaciones.

Objetivos

  • Comprender qué son los diccionarios y cómo se utilizan.
  • Aprender a manipular diccionarios con operaciones básicas.
  • Entender qué son los conjuntos y cómo se utilizan.
  • Aprender a realizar operaciones con conjuntos.

Diccionarios

¿Qué es un Diccionario?

Un diccionario es una colección de pares clave-valor. Cada clave es única y se utiliza para acceder a su valor correspondiente. Los diccionarios son útiles para almacenar datos que necesitan ser recuperados rápidamente mediante una clave.

Creación de un Diccionario

# Creación de un diccionario vacío
mi_diccionario = {}

# Creación de un diccionario con elementos
mi_diccionario = {
    "nombre": "Juan",
    "edad": 30,
    "ciudad": "Madrid"
}

Acceso a Valores

# Acceder a un valor mediante su clave
nombre = mi_diccionario["nombre"]
print(nombre)  # Salida: Juan

Modificación de Valores

# Modificar un valor existente
mi_diccionario["edad"] = 31
print(mi_diccionario["edad"])  # Salida: 31

Adición de Nuevos Pares Clave-Valor

# Añadir un nuevo par clave-valor
mi_diccionario["profesión"] = "Ingeniero"
print(mi_diccionario)
# Salida: {'nombre': 'Juan', 'edad': 31, 'ciudad': 'Madrid', 'profesión': 'Ingeniero'}

Eliminación de Pares Clave-Valor

# Eliminar un par clave-valor
del mi_diccionario["ciudad"]
print(mi_diccionario)
# Salida: {'nombre': 'Juan', 'edad': 31, 'profesión': 'Ingeniero'}

Métodos Comunes de Diccionarios

Método Descripción
keys() Devuelve una vista de las claves del diccionario
values() Devuelve una vista de los valores del diccionario
items() Devuelve una vista de los pares clave-valor
get(clave) Devuelve el valor asociado a la clave
pop(clave) Elimina el par clave-valor y devuelve el valor

Ejemplo Práctico

# Ejemplo de uso de métodos de diccionario
mi_diccionario = {
    "nombre": "Juan",
    "edad": 30,
    "ciudad": "Madrid"
}

# Obtener todas las claves
claves = mi_diccionario.keys()
print(claves)  # Salida: dict_keys(['nombre', 'edad', 'ciudad'])

# Obtener todos los valores
valores = mi_diccionario.values()
print(valores)  # Salida: dict_values(['Juan', 30, 'Madrid'])

# Obtener todos los pares clave-valor
items = mi_diccionario.items()
print(items)  # Salida: dict_items([('nombre', 'Juan'), ('edad', 30), ('ciudad', 'Madrid')])

Conjuntos

¿Qué es un Conjunto?

Un conjunto es una colección desordenada de elementos únicos. Los conjuntos son útiles para realizar operaciones matemáticas como la unión, intersección y diferencia.

Creación de un Conjunto

# Creación de un conjunto vacío
mi_conjunto = set()

# Creación de un conjunto con elementos
mi_conjunto = {1, 2, 3, 4, 5}

Adición y Eliminación de Elementos

# Añadir un elemento
mi_conjunto.add(6)
print(mi_conjunto)  # Salida: {1, 2, 3, 4, 5, 6}

# Eliminar un elemento
mi_conjunto.remove(3)
print(mi_conjunto)  # Salida: {1, 2, 4, 5, 6}

Operaciones con Conjuntos

Operación Símbolo Descripción
Unión ` `
Intersección & Devuelve los elementos comunes a ambos conjuntos
Diferencia - Devuelve los elementos del primer conjunto que no están en el segundo
Diferencia Simétrica ^ Devuelve los elementos que están en uno u otro conjunto, pero no en ambos

Ejemplo Práctico

# Ejemplo de operaciones con conjuntos
conjunto_a = {1, 2, 3, 4}
conjunto_b = {3, 4, 5, 6}

# Unión
union = conjunto_a | conjunto_b
print(union)  # Salida: {1, 2, 3, 4, 5, 6}

# Intersección
interseccion = conjunto_a & conjunto_b
print(interseccion)  # Salida: {3, 4}

# Diferencia
diferencia = conjunto_a - conjunto_b
print(diferencia)  # Salida: {1, 2}

# Diferencia Simétrica
diferencia_simetrica = conjunto_a ^ conjunto_b
print(diferencia_simetrica)  # Salida: {1, 2, 5, 6}

Ejercicios Prácticos

Ejercicio 1: Diccionarios

Problema: Crea un diccionario que almacene la información de un estudiante (nombre, edad, curso) y realiza las siguientes operaciones:

  1. Añade una nueva clave "nota" con el valor 95.
  2. Modifica la edad del estudiante a 21.
  3. Elimina la clave "curso".

Solución:

# Creación del diccionario
estudiante = {
    "nombre": "Ana",
    "edad": 20,
    "curso": "Matemáticas"
}

# Añadir una nueva clave "nota"
estudiante["nota"] = 95

# Modificar la edad
estudiante["edad"] = 21

# Eliminar la clave "curso"
del estudiante["curso"]

print(estudiante)
# Salida: {'nombre': 'Ana', 'edad': 21, 'nota': 95}

Ejercicio 2: Conjuntos

Problema: Dado dos conjuntos de números, realiza las siguientes operaciones:

  1. Encuentra la unión de los conjuntos.
  2. Encuentra la intersección de los conjuntos.
  3. Encuentra la diferencia entre el primer y el segundo conjunto.

Solución:

# Creación de los conjuntos
conjunto_1 = {1, 2, 3, 4, 5}
conjunto_2 = {4, 5, 6, 7, 8}

# Unión
union = conjunto_1 | conjunto_2
print(union)  # Salida: {1, 2, 3, 4, 5, 6, 7, 8}

# Intersección
interseccion = conjunto_1 & conjunto_2
print(interseccion)  # Salida: {4, 5}

# Diferencia
diferencia = conjunto_1 - conjunto_2
print(diferencia)  # Salida: {1, 2, 3}

Conclusión

En esta sección, hemos aprendido sobre dos estructuras de datos fundamentales: los diccionarios y los conjuntos. Los diccionarios nos permiten almacenar y acceder a datos mediante claves únicas, mientras que los conjuntos nos permiten realizar operaciones matemáticas con colecciones de elementos únicos. Con estos conocimientos, estamos mejor preparados para manejar datos de manera eficiente en nuestros programas.

En el próximo módulo, exploraremos algoritmos básicos, incluyendo algoritmos de búsqueda y ordenamiento, y la recursión. ¡Sigue adelante!

© Copyright 2024. Todos los derechos reservados