W tym artykule postaramy się poznać Python Lambda.
Definicja
Lambda to funkcja zdefiniowana bez nazwy. Może to przyjmować wiele argumentów, ale dozwolone jest tylko jedno wyrażenie, które jest oceniane i zwracane. Tam, gdzie wymagane są obiekty funkcyjne, możemy użyć funkcji lambda.
Składnia:
argumenty lambda: wyrażenie
Przykład 1: Poniższa funkcja służy do obliczania sześcianu liczby.
def kostka(a):zwróć a*a*a
drukuj(kostka(3))
Powyższą funkcję można zapisać za pomocą lambdy, jak pokazano poniżej:
p = lambda x : x*x*xdrukuj(p(3))
Przykład 2: Poniższa funkcja służy do obliczania sumy dwóch liczb.
def suma_2(x,y):zwróć x + y
drukuj(suma_2(10,20))
Powyższą funkcję można zapisać za pomocą lambdy, jak pokazano poniżej:
p = lambda x,y : x + ydrukuj(p(10,20))
Przykład 3: Poniższy przykład dla lambda przyjmuje wiele argumentów.
p = lambda x, y, z : x + y + zdrukuj(p(10, 5, 3))
Przykład 4: Ta funkcja mnoży liczbę przez 2 i może być zapisana za pomocą funkcji Lambda jak poniżej:
funkcja(n):zwróć lambda x : x * n
pomnóż_przez_2 = func(2)
drukuj(pomnóż_przez_2(11))
drukuj(pomnóż_przez_2(15))
Przykład 5: Funkcja przyjmuje funkcję jako argument i zwraca wynik.
argument_funkcji = lambda p, f: p + f(p)print(funkcja_argument(5, lambda p: p * p))
print(funkcja_argument(10, lambda x: x - 3))
print(funkcja_argument(10, lambda x: x + 5))
print(funkcja_argument(10, lambda x:x/5))
Przykład 6: W poniższym przykładzie lambda służy do sortowania wartości.
#(imię,nazwisko,wiek)data = [("Sachin", "Tendulkar", "42"), ("Rahul", "Dravid", "44"), ("Virendra", "Sehwag", "40")]
dane.sort(key=lambda x:x[0])#sortuj według nazwy
drukuj(dane)
data = [("Sachin", "Tendulkar", "42"), ("Rahul", "Dravid", "44"), ("Virendra", "Sehwag", "40")]
dane.sort(key=lambda x:x[1])#sortuj według nazwiska
drukuj(dane)
data = [("Sachin", "Tendulkar", "42"), ("Rahul", "Dravid", "44"), ("Virendra", "Sehwag", "40")]
dane.sort(key=lambda x:x[2])#sortuj na podstawie wieku
drukuj(dane)
Teraz przejdź do interpretera python3.
Funkcja lambda jest używana w wielu wbudowanych metodach. Oto kilka przykładów:
1. Mapa
Ta funkcja mapuje każdy element po kolei za pomocą funkcji lambda.
Składnia:
mapa(funkcja, nast.)
Dawny:
liczba = [1,2,3,4,5,6]
Tutaj pomnożymy każdy element z listy przez 2.
mul_2 = mapa(lambda x: x*2, liczebniki)
print(list(mul_2)) # Zwraca obiekt mapy i rzutuje go na listę.
W powyższej funkcji każdy element listy jest przekazywany do funkcji lambda a funkcja lambda pomnoży go przez 2.
liczba = [1,2,3,4,5,6]mul_2 = mapa(lambda x: x*2, liczebniki)
drukuj(lista(mul_2))
2. Filtr
Ta funkcja odfiltrowuje wszystkie elementy listy, dla których funkcja lambda zwraca True.
Składnia:
filtr(funkcja, nast.)
Dawny:
liczba = [0,1,2,3,4,5,6,7,8,9,10]
liczby nieparzyste = filtr(lambda x: x % 2, liczby)
print(list(odd_nums)) # Zwraca obiekt mapy i rzutuje go na listę.
liczby nieparzyste = filtr(lambda x: x % 2, liczby)
print(lista(liczba_nieparzystych))
3. Zmniejszyć
Ta funkcja zwraca pojedynczą wartość przez zastosowanie funkcji func() do seq.
Składnia:
zmniejsz(funkcja, nast.)
Dawny:
liczba = [0,1,2,3,4,5,6,7,8,9,10]
wartość = zmniejsz(lambda x,y: x+y, liczebniki)
drukuj(wartość)
Na powyższej liście weźmie pierwsze 2 elementy i wykona dodawanie. Wynik dodawania zostanie dodany do trzeciego elementu i tak dalej. Wreszcie zwróci pojedynczą wartość.
Uwaga: ta metoda nie jest dostępna w wersji python3+.
liczba = [0,1,2,3,4,5,6,7,8,9,10]wartość = zmniejsz(lambda x,y: x+y, nums)
drukuj(wartość)
Wniosek
Z tego artykułu dowiedzieliśmy się o wielu aspektach funkcji lambda. W zależności od tego, czego potrzebuje program, możemy go użyć i lepiej kodować w Pythonie. Jest to najczęściej używane do przekazywania argumentów do innej funkcji (na przykład widzieliśmy powyżej funkcje mapowania, filtrowania i zmniejszania).