Two Dictionaries and a Sum!

B

Bradley Wright

Confusing subject for a confusing problem (to a novice like me of course!)
Thx for the help in advance folks

I have (2) dictionaries:

prices = {
"banana": 4,
"apple": 2,
"orange": 1.5,
"pear": 3
}

stock = {
"banana": 6,
"apple": 0,
"orange": 32,
"pear": 15
}

Here's my instructions:

consider this as an inventory and calculate the sum (thats 4*6 = 24 bananas!)

HERES MY CODE:

for key in prices:
print prices[key]*stock[key]

HERES THE OUTPUT:

48.0
45
24
0

ISSUE:
I need to find a way to add all of those together...any pointers?
 
S

Spacelee

for key in prices.keys():
print prices[key]*stock[key]


On Sat, May 18, 2013 at 12:19 PM, Bradley Wright <
Confusing subject for a confusing problem (to a novice like me of course!)
Thx for the help in advance folks

I have (2) dictionaries:

prices = {
"banana": 4,
"apple": 2,
"orange": 1.5,
"pear": 3
}

stock = {
"banana": 6,
"apple": 0,
"orange": 32,
"pear": 15
}

Here's my instructions:

consider this as an inventory and calculate the sum (thats 4*6 = 24
bananas!)

HERES MY CODE:

for key in prices:
print prices[key]*stock[key]

HERES THE OUTPUT:

48.0
45
24
0

ISSUE:
I need to find a way to add all of those together...any pointers?
 
C

Chris Angelico

Confusing subject for a confusing problem (to a novice like me of course!)
Thx for the help in advance folks

I have (2) dictionaries:

prices = {
"banana": 4,
"apple": 2,
"orange": 1.5,
"pear": 3
}

stock = {
"banana": 6,
"apple": 0,
"orange": 32,
"pear": 15
}

Here's my instructions:

consider this as an inventory and calculate the sum (thats 4*6 = 24 bananas!)

Let me reword your problem a little, maybe it'll be a bit clearer.
You're trying to calculate the total value of all stock on hand, eg
for insurance purposes. That's not 24 bananas, that's $24 of bananas.
And the part you want now is to get the total value of your entire
stock. Great! You're very close to there...
HERES MY CODE:

for key in prices:
print prices[key]*stock[key]

ISSUE:
I need to find a way to add all of those together...any pointers?

.... you just need to accumulate a sum. Since this is almost certainly
homework, I won't give you the answer, but here are a few pointers:

* You'll need a single variable (I use the term sloppily, Python
doesn't actually have variables per se) which will collect the final
total.
* Inside your loop, you're currently printing out an int/float with
the value of the current item. Just add it onto your accumulator.
* Python will happily work with integers and floats together, so you
can just do what's obvious and it'll work.

See where that takes you. Have fun! :)

ChrisA
 
N

nanobio

total,amount=0,0
for key in prices.keys():
price=prices[key]*stock[key]
total+=price
print "%s %s" % (price,total)
 
N

nanobio

total,amount=0,0
for key in prices.keys():
amount=prices[key]*stock[key]
total+=amount
print "%s %s" % (amount,total)
 
R

Roy Smith

Bradley Wright said:
Confusing subject for a confusing problem (to a novice like me of course!)
Thx for the help in advance folks

I have (2) dictionaries:

prices = {
"banana": 4,
"apple": 2,
"orange": 1.5,
"pear": 3
}

stock = {
"banana": 6,
"apple": 0,
"orange": 32,
"pear": 15
}

Here's my instructions:

Hmmm, homework for a class?
consider this as an inventory and calculate the sum (thats 4*6 = 24 bananas!)

I suspect what you're trying to say is that bananas cost BTC 4 each, and
since you've got 6 bananas, you've got BTC 24 worth of bananas, yes?
And now you want to find the total value of your fruit supply?
HERES MY CODE:

for key in prices:
print prices[key]*stock[key]

HERES THE OUTPUT:

48.0
45
24
0

So far, so good. A couple of things you may have noticed along the way:

1) Your orange unit price was a float, so the total value of all your
oranges is a float as well. That's how math works in Python.

2) The keys are presented in random order. To make the output easier to
interpret, you might want to do:

print key, prices[key]*stock[key]

ISSUE:
I need to find a way to add all of those together...any pointers?

The most straight-forward way would be something like:

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

print total


There are better ways to do this in Python, but start like this and get
that to work.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,754
Messages
2,569,516
Members
44,985
Latest member
rsts

Latest Threads

Top