Рубрики
кодирование

Синтаксис Python def и lambda и сравнение различий

Давайте взглянем на два ключевых слова, которые имеют схожие функции. Разве ты не сделал бы два бесполезно?

определение определения

Позвольте мне сначала привести вам пример.

def add(x, y):
    return x + y
print(add(3,5))

Вот результат:

8

Функции записываются с ключевым словом def.

add — это имя функции, а передаваемые аргументы определяются как x и y.

У него есть функция, которая возвращает результат сложения двух значений.

Если вы передадите 3 и 5 в качестве аргументов функции добавления, созданной таким образом, вы увидите, что результатом будет 8.

лямбда описание

Давайте создадим ту же функцию, что и выше.

add = lambda x,y: x+y
print(add(2,3))

Вот результат:

5

Он использует ключевое слово lambda для получения x и y в качестве аргументов и возвращает результат сложения двух значений.

Лямбда-выражения по умолчанию создают безымянные функции.

А можно лаконичнее написать в одну строчку.

Кроме того, не используйте ключевое слово return.

Его также можно использовать так же, как функцию, присвоив его переменной.

Как это использовать

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

temp = [1,2,3,4,5]
result = list(filter(lambda x:x>2, temp))
print(result)

Вот результат:

[3,4,5]

Это пример использования метода фильтра для выбора только значений больше 2 из массива с элементами от 1 до 5.

lambda получает значение, определяет, больше ли оно 2, и возвращает логические значения True или False.

Метод filter присваивает лямбду первому аргументу и массив второму аргументу.

Он проходит по массиву и выдает результат, сохраняя значение, если оно больше 2, и исключая его в противном случае.

Результат, полученный фильтром, создается в виде массива методом списка и сохраняется в переменной результата.

Давайте создадим точно такую ​​же функцию с функцией.

temp = [1,2,3,4,5]
def comp(x):
    return x > 2
result = list(filter(comp, temp))
print(result)

Вот результат:

[3,4,5]

Неважно, как вы это реализуете, но в этом примере лямбда немного лаконичнее, верно?

На самом деле, если вы сфотографируете этот тип, обе реализации def и lambda получатся такими же, как и функции.

Следовательно, вы можете думать об этом как о концепции, в которой лямбда включена в функцию.

В заключение, было бы лучше использовать ключевое слово def для создания функции, которую нужно использовать повторно, и использовать lambda, когда вы хотите создать простую одноразовую функцию.

На это сообщение есть ответы: 2.

Добавить комментарий

Ваш адрес email не будет опубликован.

ru_RUРусский