Рубрики
Без рубрики

Узнав о функции лямбда в Python

Несколько дней назад я давал сессию для инженерных студентов колледжа о Python Invectuction Ex … Теги с Python, программированием, обучением, CodeNewie.

Несколько дней назад я давал сессию для инженерных студентов колледжа о введении 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://dev.to/this-is-learning/learning-about-lambda-function-in-python-4mo7”