#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