Python从lis中从元组检索元素

2024-09-27 21:24:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我是Python的初学者,正在努力从列表中检索元组中的元素。我要做的是求出一个水果的价值,然后乘以所需的数量。下面的一个例子将告诉你我的意思。我不知道如何获得元组中的第二个元素。在

##Cost of [('apples', 2.0), ('pears', 3.0), ('limes', 4.0)] is 12.25


fruitPrices = {'apples':2.00, 'oranges': 1.50, 'pears': 1.75,'limes':0.75,   
               'strawberries':1.00}

def buyLotsOfFruit(orderList):
##    orderList: List of (fruit, numPounds) tuples        
## Returns cost of order

totalCost = 0.0 
for fruit,price in fruitPrices.items():
  if fruit not in fruitPrices:
    print 'not here!'
  else:
    totalCost = totalCost +fruitPrices[fruitPrices.index(fruit)].key() * price            
return totalCost

在我的else语句中,我基本上无法使它发挥作用。非常感谢所有的帮助!在


Tags: ofin元素notpriceelse元组fruit
3条回答

可以把这句话写下来,但我不认为这会有帮助。你正在循环查看价格字典,但应该循环查看订单列表,然后在字典中查找水果。在

def buyLotsOfFruit(orderList):
    totalCost = 0.0 
    for fruit, quantity in orderList:
       if fruit not in fruitPrices:
           print 'not here!'
       else:
           totalCost = totalCost +fruitPrices[fruit]* quantiy            
    return totalCost

你为什么翻字典?而是循环查看列表,并相应地添加到totalCost。在

for fruit, n in orderList:
    if fruit in fruitPrices:
        totalCost += fruitPrices[fruit] * n
    else:
        print fruit, 'not here!'

你可以简化这一切然后做一些类似的事情

^{pr2}$

注意,如果fruitfruitPrices中,fruitPrices.get(fruit, 0)将返回{},否则返回{}。在

fruitPrices = {'apples':2.00, 'oranges': 1.50, 'pears': 1.75,'limes':0.75,   
               'strawberries':1.00}

def buyLotsOfFruit(orderList):
    ##    orderList: List of (fruit, numPounds) tuples        
    ## Returns cost of order

    totalCost = 0.0 
    for fruit,price in fruitPrices.items():
        if fruit not in fruitPrices:
            print 'not here!'
        else:
            #totalCost = totalCost +fruitPrices[fruitPrices.index(fruit)].key() * price            
            totalCost = totalCost +fruitPrices[fruit] * price

    return totalCost

相关问题 更多 >

    热门问题