Вычисление значений в словаре

#python #dictionary

Вопрос:

У меня есть следующий словарь:

 food_calories = {"Burger": 400, "Ice Cream": 350, "Cake": 640, "Chicken": 400, "Rice": 250, "Salad": 40, "Fanta": 170, "Coke": 200, "Beef": 350}
 

Как я могу рассчитать сумму некоторых значений словаря? Например, «Мороженое»,» Курица», «Говядина») # = > 1100

Я получаю только ошибки, и я застрял в настройке функции.

 min_calories = min(zip(food_calories.values(), food_calories.keys()))
max_calories = max(zip(food_calories.values(), food_calories.keys()))
print("min_calories:",min_calories)
print("max_calories:",max_calories)

values = food_calories.values()
total = sum(values)
print(total)

def food_calories_sum():
  for k in food_calories:
    return k
 

Комментарии:

1. Я не понимаю вашего вопроса… не могли бы вы привести пример ожидаемого результата и текущего результата?

2. «Я получаю только ошибки» — код, который вы опубликовали, работает нормально и не вызывает никаких ошибок

3. Вы уже подсчитываете сумму total = sum(values) , я не понимаю, что вам нужно??

4. Я хочу рассчитать только некоторые значения, а не все из них, как я это сделал. Как я могу назвать это тем, что я получаю только сумму калорий из нескольких значений?

5. что вы подразумеваете под «некоторыми значениями» .. это входные данные для функции? список ключей?

Ответ №1:

Это то, что вы ищете?

 l = ["Ice Cream", "Chicken", "Beef"]

def food_calories_sum(l):
    return sum([food_calories.get(i,0) for i in l])

food_calories_sum(l)
 
 1100
 

Вы можете заменить на food_calories.get(i,0) , food_calories[i] но если вы передадите элемент, которого нет в food_calories словаре, он выдаст ошибку.

Вместо food_calories.get(i,0) этого возвращает 0 в качестве значения по умолчанию, если ключ не найден, поэтому возвращает только сумму для существующих элементов и выполняет некоторую обработку исключений.

Ответ №2:

Вы можете получить доступ к значению каждого ключа , используя следующий синтаксис: food_calories['item'] , где item в вашем словаре есть какой-то ключ.

Это пример вывода, в котором food_calories указан диктант, который вы определили в своем посте:

 >>> food_calories['Rice']   food_calories['Burger']
650