я пытаюсь преобразовать свою функцию в лямбду - PullRequest
0 голосов
/ 07 марта 2020

Я хочу преобразовать эту функцию в лямбду, но не знаю, что я делаю неправильно.

temperatures=[10,20,30,11,22,33]

def check_weather(temp,low,high):
    if temp in range(low,high):
        return True
    else:
        return False

print(list(filter(lambda weather,low,high: True if weather in range(low,high) else False,temperatures)))

ошибка:

TypeError: () отсутствует 2 обязательных позиционных аргументы: «низкий» и «высокий»

Ответы [ 2 ]

1 голос
/ 07 марта 2020

Вам не нужна лямбда. Если бы это было возможно, вы могли бы использовать функцию как объект

def check_weather(temp,low,high):
    return low <= temp <= high

print(list(filter(check_weather, weathers)))

Однако функция фильтра передает только один параметр во внутреннюю функцию фильтра

Вы можете определить partial если вы хотите выполнить sh это, однако неясно, как вы назначаете низкие и высокие значения

0 голосов
/ 07 марта 2020

Сначала нужно назначить низкие и высокие значения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...