Несколько дней назад я давал сессию для инженерных студентов колледжа о введении Python, объясняя лямбда
Функция в Python. Я застрял в это время, объясняя детали, как я тоже знаю, что я не эксперт для лямбда
Использование в Python. Но я подумал, что это правильное время, чтобы подробно учиться и поделиться тем, что обучение разработчикам, которые в том же состоянии, что и я.
Давайте понять, что получит выгоду из этой статьи :
- Подробнее понимание о лямбде
- Как использовать вместе с примером
Что такое лямбда в Python ?
Функция лямбда в Python – это анонимная функция или функция, которая не имеет никакого имени. Это в основном один вкладыш и ограниченная функция. Это как нормальная функция, функция лямбда может иметь несколько аргументов с одним выражением.
Создание лямбда Функция :
lamba arguments(a,b,...n): expression
Например:
Вообще в Python
def sum(a,b): return a+b print(sum(2,3))
Output : >>> 5
Использование лямбда в Python
sum = lambda a,b: a+b print(sum(2,3))
Output : >>> 5
В этом выше коду Сумма A, B: A + B
Это функция лямбда. a
а также B
Переменные – это аргумент, пока A + B
это эксплуатация, которое выполняется, и результат выражения возвращается без обратного синтаксиса. Выражение получает добавление входных параметров. Предоставление 2,3
Как параметры, которые добавлены 2 и 3. Можете увидеть, как обычно можно записать одну и ту же логику и в использовании лямбда с точки зрения строк кода и выполнения.
Но линии кода – единственная причина использовать лямбда в Python? Есть ли причина ? Ответ большой Да Отказ
Функции лямбда используются, когда вам нужна функция на короткий промежуток времени. Это используется, когда вы хотите пройти функцию в качестве аргумента для Функции высшего порядка То есть функции, которые принимают другие функции как свои аргументы.
А Функция высшего порядка это функция, которая принимает функцию в качестве аргумента или возвращает функцию. Функция более высокого порядка в отличие от функций первого порядка, которые не принимают функцию в качестве аргумента или возврата функции в качестве вывода. карта
, фильтр
и Уменьшить
являются функциями более высокого порядка. Lambda отлично работает как параметр к функциям более высокого порядка, если вы используете его с его ограничениями.
Возможно, вы заметили, что в определении лямбдаса аргументы не имеют круглых скобок вокруг них. Многофуспортивные функции (функции, которые берут более одного аргумента), выражаются в Python Lambdas, путем листирования аргументов и разделяя их запятой (,), но без окружения их скобками.
- Еще один способ вызове функции лямбда анонимно не назначает переменных и передающих аргументов:
(lambda x, y: x + y)(2, 3)
Пример,
def square(a): return (lambda x: x*x)(a) print(square(2))
- Еще один пример расчета квадрата для всех элементов списка:
def square(x): return lambda : x*x functions = [square(i) for i in [1,2,3,4,5,6]] for function in functions: print(function())
Output: 1 4 9 16 25
Есть еще одна концепция под названием Carrying Это означает, что функции занимают любое количество расчетов и данных в единую реальную функцию, которая возвращает ожидаемый выход. Вот как я могу преобразовать пример вышедшего квадрата пример расчета с помощью карри.
functions = [lambda i=i: i*i for i in range(1, 6)] for function in functions: print(function())
В этом примере карри I = Я
является позиционным аргументом. Если вы назначите I = 1.
Тогда весь вывод станет 1
Отказ Здесь мы назначаем Я
Переменная к Я
От итерации выражения Для меня в пределах (1,6)
Отказ Как вы можете видеть, мы не передаем никаких аргументов от Функция ()
Но в лямбдах объявляет о назначении точечного значения, используя I = i
.
Другим примером для позиционного аргумента является:
(lambda x, y, z=3: x + y + z)(1, 2)
В этом примере z
Значение по умолчанию 3. При прохождении аргументов не может изменить положение 1-го и 2-го аргумента. Во-первых, не по умолчанию аргумент не должен следовать аргументу по умолчанию означает, что вы можете использовать это (лямбда, y, z: x + y + z) (1, 2)
Это будет бросать ошибку, как ниже:
File "main.py", line 1 print((lambda x=2, y, z: x + y + z)(1, 2)) ^ SyntaxError: non-default argument follows default argument
Это может быть похоже на этот Печать ((лямбда х ,,,: x + y + z) (1))
Потому что в этом значение по умолчанию следуйте друг за другом.
Заключение Теперь вы все знаете, как использовать функции Python Lambda и некоторые подсказки:
- Напишите Python Lambdas и используйте анонимные функции
- Выберите мудро между лямбдасом или обычными функциями Python
- Избегайте чрезмерного использования лямбдаса
В этой статье я не покрыл полное расширенное использование лямбда Но я попытался использовать понимание базовой лямбда вместе с примером. Для получения более подробной информации можно использовать ниже ссылки.
Если какая-либо помощь требуется об этой статье или более продвинутом понимании о лямбдах, может добраться до моего Twitter Handler @ Aviboy2006.
Ссылки :
- https://stackabuse.com/lambda-functions-in-python
- https://realpython.com/python-lambda/
- https://www.geeksforgeeks.org/currying-function-in-python/
Оригинал: “https://dev.to/this-is-learning/learning-about-lambda-function-in-python-4mo7”