Q:如何获得和值字典

问题描述 投票:-1回答:1

我正在尝试我的代码。我很困惑..如何将这两个词典结合起来,以使结果的值像预期的那样?对于每个这样的图表和总价格,都是这样的:

[{'Cherries': 1, 'Blueberries': 2, 'Banana': 3, 'Avocado': 2, 'Blackberries': 2}, {'Apple': 6, 'Avocado': 5, 'Banana': 3, 'Blackberries': 10, 'Blueberries': 12, 'Cherries': 7, 'Date Fruit': 14, 'Grapes': 15, 'Guava': 8, 'Jackfruit': 7, 'Kiwifruit': 9}]
output 70
[{'Cherries': 4, 'Blackberries': 2, 'Avocado': 2, 'Blueberries': 2}, {'Apple': 6, 'Avocado': 5, 'Banana': 3, 'Blackberries': 10, 'Blueberries': 12, 'Cherries': 7, 'Date Fruit': 14, 'Grapes': 15, 'Guava': 8, 'Jackfruit': 7, 'Kiwifruit': 9}]
output 82
[{'Avocado': 1, 'Blueberries': 2, 'Cherries': 3, 'Banana': 2, 'Apple': 1, 'Blackberries': 1}, {'Apple': 6, 'Avocado': 5, 'Banana': 3, 'Blackberries': 10, 'Blueberries': 12, 'Cherries': 7, 'Date Fruit': 14, 'Grapes': 15, 'Guava': 8, 'Jackfruit': 7, 'Kiwifruit': 9}]
output 72

对于我的代码:

fruits = ['Apple','Avocado','Banana','Blackberries','Blueberries','Cherries','Date Fruit','Grapes','Guava','Jackfruit','Kiwifruit']
prices = [6,5,3,10,12,7,14,15,8,7,9]
chart = ['Blueberries','Blueberries','Grapes','Apple','Apple','Apple','Blueberries','Guava','Jackfruit','Blueberries','Jackfruit']
d1 = dict(zip(fruits,prices))
fruit_price = None
dcounter = {}
for i in chart:
    if i in dcounter:
        dcounter[i] +=1
    else:
        dcounter[i] =1
#print(dcounter)
fruit_price = {}
for i, j in d1.items():
    for x, y in dcounter.items():
        if i == x:
            fruit_price[i]=(j*y)
#print(fruit_price)

def total_price(dcounter,fprice):
    total = 0
    for i in fruit_price.values():
        total+= i
    return total
total_price(dcounter,fruit_price)

而且我想为dcounter和fruit_price输入代码,输入函数(def total_price)请帮我。谢谢!

python function dictionary key-value
1个回答
0
投票

您的问题根本不清楚,但是,我设法理解了这个问题。

首先,您的输入包含2个字典,一个是shopping_list,另一个是prices

因此,首先考虑,为清晰起见,将两者都提取出来

list_of_dicts = [{'Cherries': 1, 'Blueberries': 2, 'Banana': 3, 'Avocado': 2, 'Blackberries': 2}, {'Apple': 6, 'Avocado': 5, 'Banana': 3, 'Blackberries': 10, 'Blueberries': 12, 'Cherries': 7, 'Date Fruit': 14, 'Grapes': 15, 'Guava': 8, 'Jackfruit': 7, 'Kiwifruit': 9}]
shopping_list = list_of_dicts[0]
prices = list_of_dicts[1]

现在,很容易遍历购物清单,获取要购买的商品数量,并将该数量乘以商品价格。

def get_bill(shopping_list, prices):
    bill = 0
    for item, amount in shopping_list.items():
        bill += prices[item]*amount
    return bill

get_bill(shopping_list, prices)
#70
© www.soinside.com 2019 - 2024. All rights reserved.