La solicitud

De Debra Marshall, Gerente de Almacén
Tu objetivo
Actualiza stock para que Brass Floor Lamp suba en 20, Oak Side Table baje en 5 y una nueva clave 'Stoneware Mug Set' tenga 48. Asigna a result el diccionario actualizado (los cuatro productos).
- Guarda un dict en
resultpendiente
Tu código
Cargando el editor…
Solución de referencia
Mote revisa tu resultado
Presiona Ejecutar. Cada fila que cumple el objetivo se vuelve una luciérnaga en tu linterna.
Lo que recibe Debra, y por qué
La lección
Buscar cosas por nombre
Una lista encuentra elementos por posición. Un diccionario (dict) los encuentra por una clave
que tú eliges. Se escribe con llaves y pares clave: valor:
stock = {
"Oak Side Table": 14,
"Brass Floor Lamp": 0,
"Linen Throw Pillow": 37,
}
stock["Oak Side Table"] # 14
Piénsalo como una tabla de búsqueda de dos columnas. Las claves son únicas: un producto, una cantidad en existencia. Las claves suelen ser strings o números; los valores pueden ser cualquier cosa, incluidas listas u otros diccionarios.
Cambiar y añadir
Asignar a una clave la actualiza si existe y la añade si no existe:
stock["Brass Floor Lamp"] = 20 # update
stock["Oak Side Table"] -= 5 # change relative to the current value
stock["Stoneware Mug Set"] = 48 # new key
del stock["Linen Throw Pillow"] elimina una clave, y "Oak Side Table" in stock comprueba si una
clave existe (True o False).
Claves que faltan
Leer una clave que no existe lanza un KeyError:
stock["Walnut Bookshelf"] # KeyError: 'Walnut Bookshelf'
Cuando una clave puede faltar, usa .get, que devuelve un valor por defecto en lugar de fallar:
stock.get("Walnut Bookshelf", 0) # 0
stock.get("Oak Side Table", 0) # 9 after the sale
.get es la forma segura de leer datos que no creaste tú, como la respuesta de una API o una fila de un
archivo en la que algunos campos pueden estar ausentes.
Recorrer un diccionario
.items() te da cada clave y su valor juntos, que es el bucle que más escribirás:
for product, count in stock.items():
if count == 0:
print(f"{product} is out of stock")
.keys() y .values() dan solo un lado, así que sum(stock.values()) es el número total de unidades
disponibles.
Orden e igualdad
Desde Python 3.7, los diccionarios recuerdan el orden en que insertaste las claves, lo que hace que la
salida impresa sea predecible. Dos diccionarios son iguales cuando tienen las mismas claves con los
mismos valores, sin importar el orden, así que {"a": 1, "b": 2} == {"b": 2, "a": 1} es True.
Por qué les importan a los analistas
Los diccionarios aparecen en todas partes: una fila de datos, un registro JSON de una API web, una
correspondencia de códigos a etiquetas ({"WEB": "web", "APP": "app"}), un conjunto de parámetros para
una función. pandas también los usa, por ejemplo para renombrar columnas o para asignar valores en una
columna.
Errores comunes
- Usar corchetes para leer una clave que puede no existir. Usa
.getcon un valor por defecto. - Erratas en las claves.
"Oak side table"es una clave distinta de"Oak Side Table", así que asignarle crea en silencio un cuarto producto. - Esperar que
result = stockhaga una copia. Ambos nombres apuntan al mismo diccionario, así que un cambio posterior enstocktambién se ve enresult. Usastock.copy()cuando necesites uno separado.
¡Linterna encendida!
Practicaste: dictionarieskeys valuesgetupdate
- Resuelto
- Sin pistas
- Al primer intento
