alumnos = {
"Ana": [8, 6, 10],
"Luis": [5, 6, 7],
"Marta": [9, 8, 9],
"Eva": [9, 8, 9],
}
# Esto no se pedía, pero si queremos añadir notas personalizadas a cada alumno lo podemos hacer así
notasnuevas = [6, 7, 4, 8]
# Para guardar el que tenga la media más alta. Necesitamos la media para saber el valor
# y primerodelaclase para el nombre
mediaprimero = 0
primerodelaclase = ""
# recorrer un diccionario
for alumno, notas in alumnos.items():
media = sum(notas) / len(notas)
print(f"El alumno {alumno} tiene una nota media de {media:.2f}")
if media > mediaprimero:
mediaprimero = media
primerodelaclase = alumno
notas.append(notasnuevas.pop())
print("El primero de la clase es ", primerodelaclase) #
# No es recomendable. Por varias cosas, una, si añado alumnos ya no funciona
# Si tengo muchos alumnos se me juntan demasiadas líneas
# Y no vale decir 'Así pongo una nota individualizada' ;)
alumnos["Ana"].append(3)
alumnos["Luis"].append(3)
alumnos["Marta"].append(3)
alumnos.keys() # Las claves "Ana","Luis"...
alumnos.values() # Los valores [8, 6, 10],...
alumnos.items() # Los pares clave valor ("Ana",[8, 6, 10])....
alumnos # python me devuelve alumnos.keys()
inventario = {
"frutas": ["manzana", "pera", "plátano"],
"verduras": ["zanahoria", "brócoli"],
"bebidas": ["agua", "zumo"]
}
# Añade "sandía" a la categoría de frutas.
inventario["frutas"].append("sandía")
print(inventario)
# Imprime todos los productos (uno por línea).
for productos in inventario.values():
for producto in productos:
print(producto)
# Cuenta cuántos productos hay en total.
numproductos = 0
for productos in inventario.values():
numproductos += len(productos)
print(numproductos)
# Diccionario donde cada cliente tiene una lista de pedidos (cada pedido es un dict)
clientes = {
"Juan": [{"producto": "Libro", "precio": 20}, {"producto": "Lápiz", "precio": 2}],
"Ana": [{"producto": "Cuaderno", "precio": 5}],
"Luis": [{"producto": "Tablet", "precio": 200}, {"producto": "Funda", "precio": 15}]
}
def total_gastado(cliente, datos): # Nos devuelve cuanto ha gastado cada cliente en total
pedidos = datos[cliente]
total = 0
for pedido in pedidos:
total += pedido["precio"]
return total
def total_gastado_c(cliente, datos):
return sum([pedido["precio"] for pedido in datos[cliente]])
def productosPorCliente(
datos): # nos devuelve un diccionario donde la clave es el nombre del cliente y el valor es el número de productos
resultado = {}
for clave, valor in datos.items():
resultado[clave] = len(valor)
return resultado
def productosPorCliente_c(
datos): # nos devuelve un diccionario donde la clave es el nombre del cliente y el valor es el número de productos
return {clave:len(valor) for clave, valor in datos.items()}
# Para saber si un diccionario ya tiene una clave usamos ‘in’ como en las listas
# if "Ana" in clientes:
print(total_gastado("Luis", clientes))
print(total_gastado_c("Luis", clientes))
print(productosPorCliente(clientes))
print(productosPorCliente_c(clientes))