# Así defino un diccionario libro = {"titulo": "El Quijote", "autor": "Cervantes", "precio": 20} # así accedo al valor de una clave print(libro["precio"]) # Así recorro todas las claves for clave in libro: print(clave) # los valores de esa clave print(libro[clave]) # Puedo tener una lista de diccionarios biblioteca = [ {"titulo": "El Quijote", "autor": "Cervantes", "precio": 20}, {"titulo": "Las olas", "autor": "Virginia Woolf", "precio": 17}, {"titulo": "Los detectives salvajes", "autor": "Roberto Bolaño", "precio": 23}, {"titulo": "Tom va a la escuela", "autor": "Rick Sánchez", "precio": 10} ] # para acceder a un elemento primero accedo a la posición de la lista print(biblioteca[1]) # {"titulo": "Las olas", "autor": "Virginia Woolf", "precio": 17}, print(biblioteca[1]["autor"]) # "Virginia Woolf" # Recorrer esa lista de diccionarios for libro in biblioteca: print(libro) # Quiero ver todos los autores de la biblioteca for libro in biblioteca: print(libro["autor"]) # Puedo hacer cálculos por ejemplo media de precios suma = 0 for libro in biblioteca: suma += libro["precio"] print(suma / len(biblioteca)) proyecto = [ {"nombre": "Análisis", "horas": 10, "precio": 60}, {"nombre": "Desarrollo", "horas": 50, "precio": 50}, {"nombre": "Implementación", "horas": 5, "precio": 70}, {"nombre": "Pruebas", "horas": 15, "precio": 40}, ] # función que me calcule el total de importe del proyecto def totalProyecto(proyecto): total = 0 # recorro las tareas for tarea in proyecto: # Accedo a las propiedades que me interesan. En este caso horas y precio total += tarea["horas"] * tarea["precio"] return total print(totalProyecto(proyecto)) # listas que tienen diccionarios que tienen listas de diccionarios biblioteca = [ {"titulo": "El Quijote", "autor": {"nombre": "Miguel de Cervantes", "pais": "España"}, "ediciones": [ {"editorial": "Alianza", "precio": 15}, {"editorial": "Cátedra", "precio": 20} ] }, {"titulo": "2666", "autor": {"nombre": "Roberto Bolaño", "pais": "Chile"}, "ediciones": [ {"editorial": "Anagrama", "precio": 30}, {"editorial": "Alfaguara", "precio": 28} ] } ] # Al precio de la primera edición de mi primer libro print(biblioteca[0]["ediciones"][0]["precio"]) # 15 # Al precio de la segunda edición de mi segundo libro print(biblioteca[1]["ediciones"][1]["precio"]) # 28 # Si quiero el total de precios de toda la biblioteca # Tengo que recorrer los libros # después recorrer las ediciones # sumar los precios def sumaPreciosBiblioteca(biblioteca): suma=0 for libro in biblioteca: for edicion in libro["ediciones"]: suma+=edicion["precio"] return suma print(sumaPreciosBiblioteca(biblioteca))