Multiplicando y luego sumndo valores de dos diccionarios (precios, stock)

Necesito multiplicar los valores de cada clave y luego sumr todos los valores para imprimir un solo número. Sé que esto es super simple pero estoy atascado

En mi mente, abordaría esto con algo como:

for v in prices: total = sum(v * (v in stock)) print total 

Pero algo así no va a funcionar 🙂

 prices = { "banana": 4, "apple": 2, "orange": 1.5, "pear": 3 } stock = { "banana": 6, "apple": 0, "orange": 32, "pear": 15 } 

Podrías usar una comprensión de dictado si quisieras a los individuos:

 >>> {k: prices[k]*stock[k] for k in prices} {'orange': 48.0, 'pear': 45, 'banana': 24, 'apple': 0} 

O ir directamente al total:

 >>> sum(prices[k]*stock[k] for k in prices) 117.0 

Si hubieras sabido cómo recorrer un diccionario, indexar un diccionario con una clave y comprender un diccionario, sería sencillo

 >>> total = {key: price * stock[key] for key, price in prices.items()} >>> total {'orange': 48.0, 'pear': 45, 'banana': 24, 'apple': 0} 

Incluso si su implementación de Python no proporciona la comprensión del Diccionario (dict incorporado

 >>> dict((key, price * stock[key]) for key, price in prices.items()) {'orange': 48.0, 'pear': 45, 'banana': 24, 'apple': 0} 

Si no quiere compatibilidad entre 2.X y 3.X, también puede usar iteritems en lugar de elementos

 {key: price * stock[key] for key, price in prices.iteritems()} 

Si desea un solo total del resultado, puede pasar los productos individuales para sum

 >>> sum(price * stock[key] for key, price in prices.items()) 117.0 

Respuesta correcta para codeacademy de acuerdo a la descripción de la tarea:

  prices = { "banana" : 4, "apple" : 2, "orange" : 1.5, "pear" : 3, } stock = { "banana" : 6, "apple" : 0, "orange" : 32, "pear" : 15, } for key in prices: print key print "price: %s" % prices[key] print "stock: %s" % stock[key] total = 0 for key in prices: value = prices[key] * stock[key] print value total = total + value print total 

Supongo que estás en la academia de código? Si es así, haz esto:

 total = 0 for key in prices: prices = 53 stock = 10.5 total = prices + stock print total 

A diferencia de lo que decían las instrucciones, tendría que sumr todos los valores antes de multiplicarlos y sumrlos al total. Espero que esto ayude.

Escribí el siguiente código y funcionó. Por clave en precios:

 print key print "price: %s" % + prices[key] print "stock: %s" % + stock[key] 

para clave en precios: valor = precios [clave] * stock [clave] valor de impresión total = total + valor de impresión total

 total = 0 for key in prices: print prices[key] * stock[key] total += prices[key] * stock[key] print total