Недавно я недавно повторно обнаружил версию анонимных функций Python, лямбда, а также с радостью использовал ее как можно больше. Лямбда полезена в том, чтобы сделать ваш код более лаконичным и допускает краткость при использовании таких методов, как карта и фильтр. Так что же лямбда точно
Что именно лямбда именно и зачем использовать его
Лямбда – это способ написания простых функций в одноклассной моде, который можно использовать во многих различных способах.
def square(num): return num**2 #or def square(num): return num**2
Вышеуказанная функция является главным кандидатом на лямбда, из-за легкостью написать ее на одной строке. Поскольку большинство функций имеют возвращаемое значение и будут иметь ключевое слово Def при использовании лямбда, эти части декларации функции выполнены для вас. Таким образом, функция выше может быть написана как:
lambda num:num**2 #or t = lambda num:num**2
Так что вопрос вот почему вы должны заботиться? Хорошо, например, при использовании его с помощью карты, вместо того, чтобы объявить небольшую функцию в вашем коде, а затем использование упомянутой функции для изменения списка, вы можете сделать это:
lst = [1,2,3,4,5] list(map(lambda num:num**2,lst)) #[1, 4, 9, 16, 25]
Вы видите красоту в этом? В двух строках кода я объявил список, а затем в квадрате ее элементы; Затем я мог бы распечатать их или сохранить их в новый список, возможности бесконечны. Еще одно удивительное использование для лямбда – это метод фильтра
Еще одно удивительное использование лямбда
При использовании функции фильтра с фильтрацией Lambda выключаются списками и наборами, могут быть легко выполнены на одной строке. Так, например, скажем, я хотел отфильтровать список выше, чтобы включить только цифры, превышающие 2:
list(filter(lambda num:num>2, seq)) #[3,4,5]
Опять же, используя лямбда, я достиг этого в одной строке, и с этим я оставлю вас с одним вопросом. Можете ли вы представить, что используете это с большим набором данных и легко фильтруют все данные в одной строке кода? 🙂
Оригинал: “https://dev.to/dmarcr1997/python-lambda-expression-nj”