W tym artykule dowiesz się o funkcji anonimowej, znanej również jako funkcje lambda. Dowiesz się, czym one są, ich składnią i jak ich używać (z przykładami).
Co to są funkcje lambda w Pythonie?
W Pythonie funkcja anonimowa to funkcja zdefiniowana bez nazwy.
Podczas gdy normalne funkcje są definiowane za pomocą def
słowa kluczowego w Pythonie, funkcje anonimowe są definiowane za pomocą lambda
słowa kluczowego.
Dlatego funkcje anonimowe są również nazywane funkcjami lambda.
Jak używać funkcji lambda w Pythonie?
Funkcja lambda w Pythonie ma następującą składnię.
Składnia funkcji Lambda w Pythonie
argumenty lambda: wyrażenie
Funkcje lambda mogą mieć dowolną liczbę argumentów, ale tylko jedno wyrażenie. Wyrażenie jest oceniane i zwracane. Funkcji lambda można używać wszędzie tam, gdzie wymagane są obiekty funkcji.
Przykład funkcji Lambda w Pythonie
Oto przykład funkcji lambda, która podwaja wartość wejściową.
# Program to show the use of lambda functions double = lambda x: x * 2 print(double(5))
Wynik
10
W powyższym programie lambda x: x * 2
jest funkcja lambda. Tutaj x jest argumentem i x * 2
jest wyrażeniem, które jest obliczane i zwracane.
Ta funkcja nie ma nazwy. Zwraca obiekt funkcji, który jest przypisany do identyfikatora double
. Możemy teraz nazwać to normalną funkcją. Twierdzenie
double = lambda x: x * 2
jest prawie taki sam jak:
def double (x): powrót x * 2
Zastosowanie funkcji Lambda w Pythonie
Funkcji lambda używamy, gdy potrzebujemy funkcji bez nazwy przez krótki czas.
W Pythonie generalnie używamy go jako argumentu funkcji wyższego rzędu (funkcji, która przyjmuje inne funkcje jako argumenty). Funkcje lambda są używane wraz z funkcjami wbudowanymi filter()
, takimi jak map()
itp.
Przykładowe użycie z filtrem ()
filter()
Funkcja w Pythonie odbywa się w funkcji i listy jako argumenty.
Funkcja jest wywoływana ze wszystkimi pozycjami na liście i zwracana jest nowa lista zawierająca elementy, dla których obliczana jest funkcja True
.
Oto przykład użycia filter()
funkcji do odfiltrowywania tylko liczb parzystych z listy.
# 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)
Wynik
(4, 6, 8, 12)
Przykładowe użycie z map ()
map()
Funkcja w Pythonie odbywa się w funkcji i listy.
Funkcja jest wywoływana ze wszystkimi pozycjami na liście i zwracana jest nowa lista zawierająca elementy zwrócone przez tę funkcję dla każdego elementu.
Oto przykład użycia map()
funkcji do podwojenia wszystkich pozycji na liście.
# 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)
Wynik
(2, 10, 8, 12, 16, 22, 6, 24)