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((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