Ir al contenido principal

Diccionarios en Python: Guía Completa con Ejemplos

🐍 Python — Estructuras de Datos

Diccionarios en Python: Guía Completa con Ejercicios Resueltos

Aprende a crear, acceder, modificar y recorrer diccionarios en Python. Ejemplos paso a paso con código ejecutable y ejercicios resueltos en español.

⏱ 13 min de lectura 🎯 Todos los niveles 💻 Código ejecutable ✅ Ejercicios resueltos

1¿Qué es un diccionario en Python?

Un diccionario es una colección de pares clave: valor. Se define con llaves { } y permite acceder a cualquier dato directamente por su clave, sin necesidad de recorrer toda la estructura.

💡 ¿Cuándo usar un diccionario?
Usa un diccionario cuando necesites asociar datos relacionados: información de una persona, configuraciones de un programa, conteo de palabras, resultados de un formulario, etc.
🆚 Lista vs Diccionario
Lista: ["Ana", 20, "Bogotá"] → accedes por posición (0, 1, 2)
Diccionario: {"nombre": "Ana", "edad": 20} → accedes por nombre (clave)

2Crear y acceder a diccionarios

crear_diccionario.py
# Crear un diccionario
estudiante = {
    "nombre"  : "Carlos",
    "edad"    : 21,
    "carrera" : "Ingeniería de Sistemas",
    "promedio": 4.2,
    "activo"  : True
}

# Acceder a valores por clave
print(estudiante["nombre"])   # Carlos
print(estudiante["edad"])     # 21
print(estudiante["carrera"])  # Ingeniería de Sistemas

# get() → acceso seguro (no genera error si no existe)
print(estudiante.get("promedio"))           # 4.2
print(estudiante.get("telefono", "N/A"))   # N/A

# Verificar si una clave existe
print("nombre" in estudiante)   # True
print("codigo" in estudiante)   # False
▶ Salida
Carlos
21
Ingeniería de Sistemas
4.2
N/A
True
False
⚠️ Diferencia entre [] y get()
Si accedes con dict["clave"] y la clave no existe, Python lanza un KeyError. Con dict.get("clave") retorna None (o el valor por defecto que definas). Usa get() cuando no estés seguro si la clave existe.

3Agregar, modificar y eliminar

modificar_dict.py
persona = {"nombre": "Laura", "edad": 25}

# Agregar nueva clave
persona["ciudad"] = "Medellín"
persona["profesion"] = "Diseñadora"
print(persona)

# Modificar valor existente
persona["edad"] = 26
persona["ciudad"] = "Bogotá"
print(persona)

# Eliminar una clave
del persona["profesion"]
print(persona)

# pop() elimina y retorna el valor
ciudad = persona.pop("ciudad")
print(f"Ciudad eliminada: {ciudad}")
print(persona)
▶ Salida
{'nombre': 'Laura', 'edad': 25, 'ciudad': 'Medellín', 'profesion': 'Diseñadora'}
{'nombre': 'Laura', 'edad': 26, 'ciudad': 'Bogotá', 'profesion': 'Diseñadora'}
{'nombre': 'Laura', 'edad': 26, 'ciudad': 'Bogotá'}
Ciudad eliminada: Bogotá
{'nombre': 'Laura', 'edad': 26}

4Métodos esenciales de diccionarios

Método¿Qué retorna?Ejemplo
keys()Todas las clavesd.keys()
values()Todos los valoresd.values()
items()Pares (clave, valor)d.items()
get(k, def)Valor de k o defaultd.get("x", 0)
pop(k)Elimina y retorna valord.pop("edad")
update(d2)Fusiona con otro dictd.update({"x":1})
clear()Vacía el diccionariod.clear()
copy()Copia superficiald2 = d.copy()

5Recorrer diccionarios

recorrer_dict.py
producto = {
    "nombre"  : "Laptop",
    "precio"  : 2500000,
    "marca"   : "Lenovo",
    "stock"   : 15
}

# Solo claves
print("--- Claves ---")
for clave in producto.keys():
    print(f"  {clave}")

# Solo valores
print("--- Valores ---")
for valor in producto.values():
    print(f"  {valor}")

# Clave y valor juntos (la forma más útil)
print("--- Ficha del producto ---")
for clave, valor in producto.items():
    print(f"  {clave:10}: {valor}")
▶ Salida
--- Claves ---
  nombre
  precio
  marca
  stock
--- Valores ---
  Laptop
  2500000
  Lenovo
  15
--- Ficha del producto ---
  nombre    : Laptop
  precio    : 2500000
  marca     : Lenovo
  stock     : 15

6Diccionarios anidados

Un diccionario puede contener otros diccionarios como valores. Esto permite representar estructuras de datos complejas como bases de datos o registros de estudiantes.

dict_anidado.py
# Registro de estudiantes
estudiantes = {
    "E001": {"nombre": "Ana",   "nota": 4.5, "ciudad": "Cali"},
    "E002": {"nombre": "Luis",  "nota": 3.8, "ciudad": "Bogotá"},
    "E003": {"nombre": "María", "nota": 2.9, "ciudad": "Medellín"},
}

# Acceder a datos anidados
print(estudiantes["E001"]["nombre"])  # Ana
print(estudiantes["E002"]["nota"])    # 3.8

# Recorrer todos los estudiantes
print("\n=== REPORTE DE ESTUDIANTES ===")
for codigo, datos in estudiantes.items():
    estado = "✅ Aprobado" if datos["nota"] >= 3.0 else "❌ Reprobado"
    print(f"{codigo} | {datos['nombre']:6} | {datos['nota']} | {estado}")
▶ Salida
Ana
3.8

=== REPORTE DE ESTUDIANTES ===
E001 | Ana    | 4.5 | ✅ Aprobado
E002 | Luis   | 3.8 | ✅ Aprobado
E003 | María  | 2.9 | ❌ Reprobado

7🏋️ Ejercicios Prácticos Resueltos

📋 Ejercicio 1: Contador de palabras

Crea un programa que cuente cuántas veces aparece cada palabra en un texto ingresado por el usuario.

contador_palabras.py
def contar_palabras(texto):
    palabras = texto.lower().split()
    contador = {}

    for palabra in palabras:
        contador[palabra] = contador.get(palabra, 0) + 1

    # Ordenar por frecuencia
    ordenado = sorted(contador.items(), key=lambda x: x[1], reverse=True)

    print("\n=== CONTEO DE PALABRAS ===")
    for palabra, veces in ordenado:
        barra = "|" * veces
        print(f"  {palabra:15} {barra} ({veces})")

texto = input("Ingresa un texto: ")
contar_palabras(texto)
▶ Ejemplo de salida
Ingresa un texto: python es genial python es el mejor lenguaje python

=== CONTEO DE PALABRAS ===
  python          ||| (3)
  es              || (2)
  genial          | (1)
  el              | (1)
  mejor           | (1)
  lenguaje        | (1)
📋 Ejercicio 2: Agenda de contactos

Implementa una agenda de contactos usando diccionarios: agregar, buscar, eliminar y listar contactos.

agenda_contactos.py
agenda = {}

def agregar_contacto(nombre, telefono, email=""):
    agenda[nombre] = {"telefono": telefono, "email": email}
    print(f"✅ {nombre} agregado a la agenda")

def buscar_contacto(nombre):
    contacto = agenda.get(nombre)
    if contacto:
        print(f"\n📞 {nombre}")
        print(f"   Tel:   {contacto['telefono']}")
        print(f"   Email: {contacto['email'] or 'N/A'}")
    else:
        print(f"❌ '{nombre}' no está en la agenda")

def listar_contactos():
    if not agenda:
        print("La agenda está vacía")
        return
    print("\n=== AGENDA ===")
    for nombre, datos in sorted(agenda.items()):
        print(f"  {nombre:12} → {datos['telefono']}")

# Prueba
agregar_contacto("Ana García",    "300-111-2222", "ana@email.com")
agregar_contacto("Luis Pérez",   "311-333-4444")
agregar_contacto("María López",  "322-555-6666", "maria@email.com")
listar_contactos()
buscar_contacto("Ana García")

¿Dominaste los diccionarios? 📖

Déjanos un comentario con tus preguntas. ¡Comparte con tus compañeros y suscríbete para más contenido!

PythonDiccionariosEstructuras de datosEjercicios resueltos
📖 Continúa aprendiendo
  • Funciones en Python: def, return y parámetros
  • Programación Orientada a Objetos en Python
  • Listas en Python — Guía Completa

Comentarios

Entradas populares de este blog

Cantidad de Alumnos Aprobados y Reprobados Pseint

Cantidad de Alumnos Aprobados y Reprobados Pseint Dada la identificación, Nombre y la nota final de un determinado Numero de estudiantes, realice un algoritmo que permita calcular y dar como salida lo siguiente: La Cantidad de Alumnos Aprobados  La Cantidad de Alumnos Reprobados  El Promedio General de Notas Nota: un estudiante aprueba con una calificación igual o superior a 3.0 en un rango de calificaciones entre 1.0 y 5.0. Algoritmo segundoEjercicio Escribir 'Ingrese la cantidad de estudiantes' Leer rango Dimension Identificacion[rango] Dimension Nombre[rango] Dimension Notas[rango] Para i<-1 Hasta rango Hacer Escribir 'Ingrese Nombre Estudiante N ',i Leer Nombre[i] Escribir 'Ingrese Numero de documento del Estudiante ',Nombre[i] Leer Identificacion[i] Escribir 'Ingrese Nota De ',Nombre[i] Leer Notas[i] promedio <- promedio+Notas[i] Si Notas[i]>=3 Entonces Aprob...

Resolver ecuación de segundo grado en JAVA

Pedir los coeficientes de una ecuación se 2º grado, y muestre sus soluciones reales. Si no existen, debe indicarlo. Una ecuación de segundo grado es toda expresión que cumpla la siguiente forma: ax² + bx +c = 0 con a ≠ 0. Para poder resolver el ejercicio debemos identificar las entradas , procesos y salidas. Entradas:{ a,b,c } Procesos: Para resolver una ecuación de segundo grado debemos aplicar la siguiente formula si a es negativo debemos realizar una proceso adicional que es multiplicar por -1 Salidas:{ x1, x2 } tendremos 2 respuestas para x. Desarrollo El problema nos dice que debemos pedir los coeficientes de la ecuación a,b y c.  Para esto debemos utilizar  la siguiente clase. import java.util.Scanner; // esta clase nos permite obtener datos  por teclado o archivos. Para usarla debemos crear un objeto. Scanner teclado = new Scanner(System.in); Ahora debemos declarar  las variables que vamos a usar ...

Conversor de sistema numéricos Pseint

Conversor de decimal  a sistemas numéricos Pseint Este ejercicio permite convertir del sistema numérico decimal a cual quier sistema numérico solo se debe ingresar el numero a convertir y la base del sistema al cual queremos convertir el numero ingresado. Convertir números decimales  a Binario. Convertir números decimales  a Octal. Convertir números decimales  a Hexadecimal. Algoritmo Conversor Dimension numeros[15] numeros[10] <- 'A' numeros[11] <- 'B' numeros[12] <- 'C' numeros[13] <- 'D' numeros[14] <- 'E' numeros[15] <- 'F' Escribir 'ingresar numero a convertir' Leer dec Escribir 'ingrese la base del sistema a convertir' Leer base valorF <- '' residuo <- 0 Repetir residuo <- dec MOD base dec <- trunc(dec/base) Si base=16 Entonces Si residuo>9 Entonces comparar <- numeros[residuo] resi <- comparar...

Calcular promedio general Pseint

Calcular promedio general Pseint Realice un programa que permita calcular y dar como salida el promedio general de un grupo de estudiantes , tomando en cuenta que esta compuesta por un determinado numero de estudiantes definidos por el usuario y que se tiene la nota definitiva de cada uno de ellos. Algoritmo Ejercicio2 Escribir 'Ingrese la cantidad de estudiantes' Leer rango Dimension Nombre[rango] Dimension Notas[rango] Para i<-1 Hasta rango Hacer Escribir 'Ingrese Nombre Estudiante N ',i Leer Nombre[i] Escribir 'Ingrese Nota De ',Nombre[i] Leer Notas[i] promedio <- promedio+Notas[i] FinPara PromedioG <- promedio/rango Escribir 'Promedio General: ',PromedioG FinAlgoritmo

Instalación de JDK de Java y Herramientas

Descarga e instalación de JDK de Java Paso 1.  Descarga del jdk Descargar JDK de Java En esta pagina encontraremos la versión mas actualizada del JDK de java  damos clic en la selección de la imagen Java Platform (JDK). Pagina Descarga JDK De Java En esta pagina encontraremos las diferentes opciones de descarga de JDK dependiendo de nuestro sistema operativo, es importante aceptar el acuerdo de licencia sin esto no dejara descargar el JDK. Aceptar acuerdo de licencia Una vez aceptado el acuerdo de licencia seleccionaremos la opción de descarga según nuestro sistema operativo. Selección opción descarga  Paso 2.  Instalación del JDK Una vez descargado el instalador del JDK, damos doble clic y dejamos los valores por defecto del instalador.  Esperamos a que la instalación termine Paso 3.  Instalación del JRE En la instalación del jdk nos instalara también el JRE dejaremos la ruta por de...

Introducción a los Conjuntos - Conceptos, Ejemplos y Aplicaciones

Introducción a los Conjuntos El concepto de conjunto es fundamental en matemáticas y se refiere a una colección de objetos bien definidos. En este artículo, exploraremos la definición de conjunto, su historia, propiedades y operaciones básicas, complementados con ejemplos prácticos y aplicaciones. ¿Qué es un Conjunto? Un conjunto es una colección de objetos, conocidos como elementos del conjunto. Los conjuntos pueden definirse de dos maneras: Extensión: Enumerando explícitamente todos sus elementos. Ejemplo: A = {1, 2, 3, 4} . Comprensión: Definiendo una propiedad común que todos sus elementos cumplen. Ejemplo: B = {x | x es un número par} . Ejemplos de conjuntos: A = {Laura, Gabriela, Diana} B = {Cuadrado, Rectángulo, Rombo, Trapecio} C = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29} D = {x | x es un estudiante activo de la UN} Conjuntos Determinados por Extensión y Comprensión Cuando u...