Программа курса:
Использование анонимных функций (lambda)
.jpg)
В Python помимо обычных функций существуют анонимные функции, которые создаются с помощью ключевого слова lambda. Такие функции не требуют имени и обычно используются для выполнения простых операций в тех местах, где полноценная функция была бы излишней. В этой лекции мы рассмотрим, как и когда использовать lambda, с подробными примерами.
В Python анонимные функции создаются с помощью ключевого слова lambda. В отличие от обычных функций, которые определяются с помощью def и могут иметь имя, lambda функции не имеют имени и предназначены для выполнения простых операций в одну строку.
Основной синтаксис для создания анонимной функции с помощью lambda:
lambda аргументы: выражение
Где:
- аргументы — это входные данные функции (как и у обычной функции),
- выражение — то, что функция возвращает.
Lambda-функции полезны там, где нужно написать небольшую функцию на месте и нет необходимости давать ей имя.
Пример 1: Простейшая lambda-функция
Допустим, вам нужно создать функцию, которая добавляет 10 к числу:
add_ten = lambda x: x + 10
print(add_ten(5)) # 15
Пояснение:
- В данном примере
lambda x: x + 10создает функцию, которая принимает один аргументxи возвращает результат выраженияx + 10. - Функцию
lambdaприсваиваем переменнойadd_ten, так что теперь при вызовеadd_ten(5)она вернет5 + 10 = 15.
Пример 2: Lambda-функция с несколькими аргументами
Lambda может принимать несколько аргументов. Рассмотрим пример, где нужно умножить два числа:
multiply = lambda a, b: a * b
print(multiply(3, 4)) # 12
Пояснение:
- Здесь
lambda a, b: a * bсоздает функцию с двумя аргументамиaиb. - Внутри функции выполняется операция умножения:
a * b. - При вызове
multiply(3, 4)возвращается результат умножения 3 на 4, то есть 12.
Пример 3: Lambda-функция без аргументов
Lambda может вообще не принимать аргументов. Например, можно создать функцию, которая всегда возвращает одно и то же значение:
constant = lambda: 42
print(constant()) # 42Пояснение:
- Здесь
lambda: 42создает функцию, которая всегда возвращает число 42. - В этом примере функция не принимает никаких аргументов, поэтому при вызове
constant()мы просто получаем 42.
Пример 4: Использование lambda внутри другой функции
Иногда удобно использовать lambda-функции как внутренние функции. Например, когда вам нужно передать простую операцию в другую функцию:
def apply_function(func, value):
return func(value)
double = lambda x: x * 2
print(apply_function(double, 5)) # 10
Пояснение:
- Функция
apply_functionпринимает на вход функцию и значение, на которое нужно применить эту функцию. - Мы создали
lambda x: x * 2, которая удваивает значение, и передали ее как аргумент вapply_function. - В результате, при вызове
apply_function(double, 5)происходит удвоение значения 5, и выводится результат 10.
Пример 5: Lambda внутри условных выражений
Lambda-функции также могут быть полезны в комбинации с условными выражениями. Например, чтобы сделать простую функцию, которая проверяет четность числа:
is_even = lambda x: "Четное" if x % 2 == 0 else "Нечетное"
print(is_even(4)) # ЧетноеПояснение:
- Здесь используется тернарный оператор внутри
lambdaфункции. Если число делится на 2 без остатка (x % 2 == 0), возвращается строка"Четное". Иначе возвращается"Нечетное". - В результате вызова
is_even(4)мы получаем "Четное", а приis_even(7)— "Нечетное".
Пример 6: Lambda-функция как возвращаемое значение другой функции
Иногда можно вернуть анонимную функцию из другой функции:
def power_function(n):
return lambda x: x ** n
square = power_function(2)
cube = power_function(3)
print(square(4)) # 16
print(cube(2)) # 8Пояснение:
- Функция
power_functionпринимает числоnи возвращаетlambda x: x ** n. Это создает функцию, которая возводит числоxв степеньn. - Переменной
squareприсваивается функция для возведения в квадрат, а переменнойcube— для возведения в куб. - Теперь при вызове
square(4)возвращается4 ** 2 = 16, а при вызовеcube(2)—2 ** 3 = 8.
Пример 7: Lambda для работы с вложенными функциями
Lambda-функции могут быть использованы для создания более сложных функциональных конструкций, таких как вложенные функции:
nested = lambda x: (lambda y: y + 1)(x) * x
print(nested(3)) # 12
Пояснение:
- Здесь мы видим, что
lambda xсоздает основную функцию, которая затем внутри себя вызывает другую lambda-функциюlambda y: y + 1с аргументомx. - То есть сначала выполняется
y + 1, что равно 4 (приx = 3), а затем результат умножается наx, и возвращается 12.
Пример 8: Lambda с логическими выражениями
Lambda-функции также могут работать с логическими операциями. Например, проверка, находится ли число в заданном диапазоне:
in_range = lambda x: 10 <= x <= 20
print(in_range(15)) # True
print(in_range(25)) # False
Пояснение:
- Здесь
lambda x: 10 <= x <= 20возвращаетTrue, еслиxнаходится в диапазоне от 10 до 20 включительно, иFalseв противном случае. - При вызове
in_range(15)результатом будетTrue, так как 15 лежит в диапазоне. А приin_range(25)результатом будетFalse, так как 25 вне диапазона.
Lambda-функции являются мощным инструментом для создания кратких и эффективных функций. Они используются в местах, где необходима быстрая обработка данных без необходимости создания полноценных именованных функций. Lambda особенно полезны, когда передаются в другие функции или применяются в условиях, циклах и вложенных выражениях.
Filaret
,После этого текста, похоже, должна быть таблица. Однако ж отсутствует.
admin
,Filaret, Не, тут таблицы быть не должно, я убрал лишний текст, спасибо, что нашли ошибку.