Как сравнить значения словаря в dict comprehension

Рейтинг: 0Ответов: 1Опубликовано: 26.01.2023

Написал функцию которая принимает словарь months с месяцами и средней температурой и число temperature. Эта функция должна вернуть словарь с месяцами, средняя температура которых больше temperature. Использовать нужно только dict comprehension. Помогите понять как можно сравнить значение полученного словаря с температурой. Написал код:

def average_temperature(months: dict, temperature: int) -> dict:
    return {x: temperature for x in months if months.values() > temperature}

Не проходит сравнение months.values() > temperature так как months.values() это dict_values(), а как достать оттуда значения не могу додуматься, пробовал запаковывать в list и сравнивать но тоже не вариант, пробовал интовать тоже не вариант, понимаю что скорей всего нужен дополнительный цикл что бы пробежаться по значениям months.values() но как его написать и где не могу додуматься??

Возвращать функция как пример должна вот такие словари:

months = {'Dec': -4.9, 'Jan': -2.2, 'Feb': 2.1}
temperature = 5
average_temperature(months, temperature) == {}
Нет месяцев со средней температурой больше 5

months = {'Jun': 18, 'Jul': 23.8, 'Aug': 22.9}
temperature = 20
average_temperature(months, temperature) == {'Jul': 23.8, 'Aug': 22.9}
Два месяца со средней температурой больше 20

Ответы

▲ 1Принят

Попробуйте так

def average_temperature(months: dict, temperature: int) -> dict:
    return {x: temp for x, temp in months.items() if temp > temperature}