Python 3.14
Ejercicios de Python sobre Diccionarios
4 ejercicios de Diccionarios en Python. Piensa la respuesta antes de abrirla: la explicación dice por qué las demás opciones fallan.
1 · Elige la respuesta · nivel 1
¿Qué imprime este código?
stock = {"manzanas": 3}print(stock.get("peras", 0) + stock["manzanas"])- A3
- BKeyError
- CNone
- D0
Ver la respuesta
Respuesta: A. 3
get() devuelve el valor por defecto (0) si la clave no existe, en vez de lanzar KeyError como hace el acceso con corchetes.
2 · Completa el hueco · nivel 1
Completa para recorrer a la vez la clave y el valor.
prices = {"pan": 1.2, "leche": 0.9}for name, price ___ prices.___(): print(f"{name}: {price}")- in
- items
- keys
- values
- of
- entries
Ver la respuesta
Respuesta: in · items
prices = {"pan": 1.2, "leche": 0.9}for name, price in prices.items(): print(f"{name}: {price}")items() devuelve pares (clave, valor) y el for los desempaqueta. keys() y values() solo dan una de las dos cosas. Los diccionarios conservan el orden de inserción.
3 · Elige la respuesta · nivel 2
¿Qué imprime este código?
defaults = {"theme": "dark", "lang": "es"}user = {"lang": "en"}print(defaults | user)- A{'theme': 'dark', 'lang': 'en'}
- B{'theme': 'dark', 'lang': 'es'}
- C{'lang': 'en', 'theme': 'dark'}
- DTypeError
Ver la respuesta
Respuesta: A. {'theme': 'dark', 'lang': 'en'}
| une dos diccionarios en uno nuevo y, si una clave se repite, gana el de la derecha. Las claves conservan el orden del primero, así que theme sigue delante.
4 · Encuentra el fallo · nivel 2
Lanza RuntimeError: dictionary changed size during iteration. ¿Qué línea lo provoca?
1scores = {"ana": 7, "luis": 3, "eva": 9}2for name in scores:3 if scores[name] < 5:4 del scores[name]5print(scores)Ver la respuesta
El fallo está en la línea 4:
del scores[name]No se puede borrar de un diccionario mientras se recorre. Alternativas: recorrer list(scores) o crear uno nuevo con {k: v for k, v in scores.items() if v >= 5}.