В тази статия ще научите за анонимната функция, известна още като ламбда функции. Ще научите какви са те, техния синтаксис и как да ги използвате (с примери).
Какво представляват ламбда функциите в Python?
В Python анонимната функция е функция, която се дефинира без име.
Докато нормалните функции се дефинират с помощта на def
ключовата дума в Python, анонимните функции се дефинират с помощта на lambda
ключовата дума.
Следователно анонимните функции също се наричат ламбда функции.
Как да използвам ламбда функции в Python?
Ламбда функция в python има следния синтаксис.
Синтаксис на ламбда функция в python
ламбда аргументи: израз
Ламбда функциите могат да имат произволен брой аргументи, но само един израз. Изразът се оценява и връща. Ламбда функции могат да се използват навсякъде, където се изискват обекти на функции.
Пример за ламбда функция в python
Ето пример за ламбда функция, която удвоява входната стойност.
# Program to show the use of lambda functions double = lambda x: x * 2 print(double(5))
Изход
10
В горната програма lambda x: x * 2
е функцията ламбда. Тук x е аргументът и x * 2
е изразът, който се оценява и връща.
Тази функция няма име. Той връща функционален обект, който е присвоен на идентификатора double
. Сега можем да го наречем като нормална функция. Изявлението
двойно = ламбда x: x * 2
е почти същото като:
def double (x): връщане x * 2
Използване на ламбда функция в python
Използваме ламбда функции, когато се нуждаем от безименна функция за кратък период от време.
В Python обикновено го използваме като аргумент на функция от по-висок ред (функция, която приема други функции като аргументи). Ламбда функции се използват заедно с вградени функции като filter()
и map()
т.н.
Пример за използване с филтър ()
Най- filter()
функцията в Python се във функция, както и списък като аргументи.
Функцията се извиква с всички елементи в списъка и се връща нов списък, който съдържа елементи, за които функцията оценява True
.
Ето пример за използване на filter()
функция за филтриране само на четни числа от списък.
# Program to filter out only the even items from a list my_list = (1, 5, 4, 6, 8, 11, 3, 12) new_list = list(filter(lambda x: (x%2 == 0) , my_list)) print(new_list)
Изход
(4, 6, 8, 12)
Пример за използване с map ()
Най- map()
функцията в Python се във функция, както и списък.
Функцията се извиква с всички елементи в списъка и се връща нов списък, който съдържа елементи, върнати от тази функция за всеки елемент.
Ето пример за използване на map()
функция за удвояване на всички елементи в списък.
# Program to double each item in a list using map() my_list = (1, 5, 4, 6, 8, 11, 3, 12) new_list = list(map(lambda x: x * 2 , my_list)) print(new_list)
Изход
(2, 10, 8, 12, 16, 22, 6, 24)