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!

## 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.