I have list of this sort. It is the order list of a person:
orderList = [('apples', 2.0), ('pears', 3.0), ('limes', 4.0)] #Here the second value is the quantity of the fruit to be purchased
How do I extract the string and the float value separately? I need to calculate the total order cost based on the given fruit prices:
fruitPrices = {'apples':2.00, 'oranges': 1.50, 'pears': 1.75, 'limes':0.75, 'strawberries':1.00}
This is what I have tried:
def buyLotsOfFruit(orderList): """ orderList: List of (fruit, numPounds) tuples Returns cost of order """ totalCost = 0.0 length = len(orderList) for i in range(0,length): for j in range(0, length - i - 1): totalCost += fruitPrices[orderList[i]] * orderList[j] return totalCost
This yields wrong answer. What am I doing wrong? How can I fix this?
Thanks!
Advertisement
Answer
You might use unpacking together with for
loop to get easy to read code, for example
orderList = [('apples', 2.0), ('pears', 3.0), ('limes', 4.0)] fruitPrices = {'apples':2.00, 'oranges': 1.50, 'pears': 1.75, 'limes':0.75, 'strawberries':1.00} total = 0.0 for name, qty in orderList: total += qty * fruitPrices[name] print(total) # 12.25
Note ,
inside for
…in
so name
values become 1st element of tuple and qty
becomes 2nd element of tuple.