DMarlon Studio

Lección 13 · 13 de 20

Diccionarios · Python

Guarde pares clave-valor en un diccionario de Python: el inventario de una frutería con get(), del, items(), keys() y values().

Python · Diccionarios en DMarlon Studio: el código del ejemplo y su salida en la terminal

Un diccionario relaciona claves con valores, entre llaves: {"apples": 12, "pears": 5}. En vez de buscar por posición, como en una lista, se busca por la clave: stock["apples"] da 12.

Para cambiar un valor o añadir una clave nueva se usa la misma forma: stock["pears"] = 8 cambia las peras y stock["kiwis"] = 20 crea los kiwis, que se añaden al final.

Pedir una clave que no existe con corchetes da un error. get("bananas", 0) es más prudente: si la clave no está, devuelve el valor por defecto, aquí 0. Y del stock["plums"] borra una clave con su valor.

items() da cada pareja clave-valor y, como en la lección anterior, el for la desempaqueta en fruit y amount. {fruit:<8}{amount:>4} las coloca en columnas.

keys() da las claves (con list() se convierten en una lista para escribirlas) y values(), los valores, que sum() suma. in mira si existe una clave.

Código · main.py

# A dictionary links keys to values: {key: value}.stock = {"apples": 12, "pears": 5, "plums": 0}print("Apples in stock:", stock["apples"])# Change a value, or add a new key, in the same way.stock["pears"] = 8stock["kiwis"] = 20print(stock)# get() gives a default value when the key does not exist.print("Bananas:", stock.get("bananas", 0))# del removes a key and its value.del stock["plums"]# items() gives each key together with its value.for fruit, amount in stock.items():    print(f"{fruit:<8}{amount:>4}")print("Fruits:", list(stock.keys()))print("Total pieces:", sum(stock.values()))print("Do we sell kiwis?", "kiwis" in stock)

Salida · python3 main.py

Apples in stock: 12
{'apples': 12, 'pears': 8, 'plums': 0, 'kiwis': 20}
Bananas: 0
apples    12
pears      8
kiwis     20
Fruits: ['apples', 'pears', 'kiwis']
Total pieces: 40
Do we sell kiwis? True

Para recordar

  • Un diccionario va entre { } con pares clave: valor.
  • d[clave] = valor cambia o añade.
  • d.get(clave, defecto) no falla si la clave no existe.
  • for k, v in d.items(): recorre claves y valores.
  • clave in d comprueba si la clave existe.

Ejercicio

Añada un diccionario prices con el precio de cada fruta y escriba el valor del inventario: cada fruta con su cantidad por su precio, y el total al final.