Programación en Python
⌂ Índice

Programación en Python · Capítulo 9

Tuplas y diccionarios

Python

Curso 2026 – 2027Programación

Tuplas: listas inmutables

Las listas son muy útiles porque podemos añadir, quitar y cambiar elementos. Pero a veces necesitamos datos que no deben cambiar, o queremos buscar un dato por su nombre en vez de por su posición numérica.

En este capítulo veremos dos estructuras fundamentales: las tuplas y los diccionarios.

Imagina que programas un videojuego y defines el tamaño de la pantalla. No querrías que una parte del código cambiara su ancho por error durante la partida.

Para guardar colecciones que no deben modificarse, Python ofrece las tuplas. Técnicamente, decimos que son inmutables.

Definir una tupla

Una tupla se parece mucho a una lista, pero se escribe con paréntesis () en vez de corchetes [].

🐍 Python

Para acceder a sus datos usamos índices, igual que con las listas:

🐍 Python

Intentar modificar una tupla

Si intentamos modificar un elemento, Python produce un TypeError.

🐍 Python

Reasignar una tupla completa

No podemos cambiar elementos dentro de una tupla, pero sí podemos asignar una nueva tupla completa a la variable.

🐍 Python

¿Cuándo usar tuplas?

Úsalas cuando los valores deban permanecer constantes durante el programa: días de la semana, coordenadas fijas o configuraciones de hardware, por ejemplo.

Diccionarios: datos con clave y valor

En una lista, para encontrar algo debes conocer su índice: 0, 1, 2... Pero para describir a una persona resulta más claro pedir su «nombre» o su «edad».

Un diccionario funciona como un diccionario de papel: buscas una clave y obtienes su valor. Se escribe con llaves {} y contiene pares clave: valor.

🐍 Python

Acceder a los valores

Usamos la clave entre corchetes:

🐍 Python

Modificar y añadir datos

Los diccionarios son mutables. El orden no es lo importante: cada dato se identifica por su clave.

🐍 Python

Evitar KeyError con .get()

Si intentas acceder a una clave que no existe con diccionario["clave"], el programa falla con un KeyError.

🐍 Python

El método .get() es más seguro: si no encuentra la clave, devuelve un valor por defecto que elijas. Si no indicas ninguno, devuelve None.

🐍 Python

Salida:

Traigo 2 vasos.
Traigo 0 huevos.

Recorrer y utilizar diccionarios

Un diccionario se puede recorrer con un for. Sus métodos permiten elegir qué parte queremos obtener:

Método Devuelve
.keys() Las claves. Es el comportamiento por defecto al recorrer un diccionario.
.values() Los valores.
.items() Parejas de clave y valor.
🐍 Python

Comprobar si existe una clave

Como con las listas, in comprueba si algo existe. En un diccionario, comprueba las claves.

🐍 Python

Añadir un valor solo si no existe: .setdefault()

.setdefault(clave, valor) añade la clave con ese valor únicamente si todavía no existe. Es útil, por ejemplo, para contar apariciones.

🐍 Python

Mostrar diccionarios grandes con pprint

El módulo pprint (pretty print) muestra diccionarios grandes de forma más legible y ordenada.

🐍 Python

Resumen

  • Las tuplas se escriben con () y son inmutables.
  • Los diccionarios se escriben con {} y relacionan cada clave con un valor.
  • Usa diccionario[clave] si sabes que existe; usa .get(clave, valor_por_defecto) si podría faltar.
  • .items() permite recorrer claves y valores a la vez.

Ejercicios prácticos

1. El buffet: tuplas

Un restaurante de buffet ofrece cinco comidas básicas.

  1. Guarda cinco comidas sencillas en una tupla.
  2. Usa un for para mostrar cada comida.
  3. Intenta modificar un elemento y comprueba el error. Después comenta esa línea para que el programa pueda continuar.
  4. El restaurante cambia dos platos: reasigna la variable a una tupla nueva y vuelve a mostrar el menú.

2. Glosario de programación

Crea un diccionario con palabras de programación y sus definiciones.

  • Incluye, por ejemplo, bucle, lista, diccionario, string y tupla como claves.
  • Muestra cada palabra y su significado con un formato limpio usando f-strings y \n si lo necesitas.

Ejemplo: Bucle: estructura que repite un bloque de código...

3. Registro de usuarios

Simula una pequeña base de datos.

  1. Crea un diccionario vacío llamado usuario.
  2. Pide con input() el nombre, apellido, edad y correo electrónico.
  3. Guarda cada dato con una clave adecuada.
  4. Muestra: El usuario {nombre} {apellido} tiene {edad} años y su correo es {email}.
  5. Extra: crea una lista vacía lista_usuarios y añade cada diccionario de usuario con .append() para guardar varios usuarios.

4. Contador de vocales

Crea un programa que pida una frase y cuente sus vocales.

  1. Empieza con este diccionario:

    🐍 Python
  2. Recorre la frase letra a letra.

  3. Convierte cada letra a minúscula con .lower().

  4. Si es una vocal, aumenta su contador en el diccionario.

  5. Muestra el resultado final.

5. Inventario de hardware

Parte de este inventario:

🐍 Python
  1. Muestra el inventario con .items().
  2. Pregunta qué artículo se quiere retirar del almacén.
  3. Usa .get() para comprobar si existe.
  4. Si no existe, muestra No tenemos ese artículo.
  5. Si existe pero tiene 0 unidades, muestra No queda stock.
  6. Si hay existencias, resta una unidad e informa de cuántas quedan.