Q:如何获取和值字典

Q: How get sum value dictionary

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

[{'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) 请帮我。谢谢!

你的问题一点都不清楚,但是我设法理解了问题。

首先,您的输入包含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

现在程序已经清楚了,您可以在函数体中添加第一步,并将单个输入传递给它。

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