Python Lambdas
- 1934
- 610
- Natan Cholewa
Wstęp
Pracowałeś zarówno z funkcjami, jak i metodami, ale istnieje inny rodzaj funkcji, funkcja anonimowa. Anonimowe funkcje są tylko funkcjami bez nazw, aw Python są one obsługiwane z operatorem Lambda.
Anonimowe funkcje pozwalają użyć zachowania funkcji bez konieczności tworzenia funkcji. Jest to szczególnie dobre, gdy trzeba używać funkcji tylko raz lub dwa razy. Może to zabrzmieć jak niezwykłe zdarzenie, ale zdarza się dość często, gdy funkcja lub metoda zajmuje funkcję jako parametr.
Lambdas
Operator Lambda ma kilka podstawowych części. Składa się ona z lambda
, lista parametrów i operacja. Operacja jest oddzielona od pozostałych dwóch za pomocą okrężnicy. Sprawdź ten przykład.
foo = lambda a = 2, b = 1: a / b print (foo) print (foo (16, 4))
Jeśli używasz Lambdas o samodzielnej pojemności, możesz ustawić je równe zmiennej. W tej formie nie są tak wszechstronne, ale nadal mogą odgrywać rolę w tworzeniu funkcji w locie.
Lambdas naprawdę znajdują swoje zastosowanie w przekazywaniu innych funkcji. Zobacz, jak to działa w poniższym przykładzie.
def do_something (funkcja, lista_a, lista_b): dla x w listy_a: dla y w liście_b: funkcja (x, y) do_something (lambda x, y: print (x*y), [1, 3, 5], [2 , 4, 6])
Oczywiście ten przykład nie jest taki praktyczny. Ilustruje jednak punkt. Możesz utworzyć lambda w wywołaniu funkcji, aby przekazać ją jako argument do innej funkcji.
Mapa
mapa()
Funkcja jest interesująca. Pozwala jednocześnie iterować na jednej lub kilku listach i przekazać je do funkcji. Dla tej funkcji bardzo łatwo jest być wyrażeniem lambda.
Ten przykład może pomóc wyjaśnić.
Drukuj (lista (mapa (Lambda X, Y: X * Y, [1, 2, 3, 4, 5], [2, 4, 6, 8, 10]))))))))))
To wygląda jak bałagan, więc najlepiej go rozbić. Główny kawałek zaczyna się od mapa
. Wymaga co najmniej dwóch argumentów, funkcji i listy. Może to jednak zająć wiele list i tym razem są dwa. Wymaga również wyrażenia Lambda, które akceptuje dwa argumenty i mnoży je razem.
Funkcja mapy działa za pośrednictwem tych list. Ustawia każdy element na pierwszej liście w pierwszym argumencie funkcji i każdego elementu na drugiej liście w drugiej argumencie funkcji. Uruchamia funkcję za każdym razem. mapa()
Funkcja zwraca obiekt mapy.
Ten obiekt mapowy musi zostać przekonwertowany na bardziej użyteczną formę. lista()
Funkcja zamienia obiekt w zwykłą listę. Następnie, wydrukować()
Wydrukuje tę listę.
Spójrz na inny.
Drukuj (lista (mapa (Lambda X: X*2, [1, 2, 3, 4, 5])))))
Prostszy przykład może być łatwiejszy do śledzenia.
Filtr
filtr()
Funkcja to kolejna funkcja podobna do mapa()
. Obejmuje funkcję i listę jako argumenty i itera na liście, uruchamiając elementy za pośrednictwem funkcji.
Zamiast po prostu uruchomić funkcję, filtr()
używa funkcji jako warunku testu dla elementów na liście. Obiekt, który tworzy, zawiera wszystkie elementy, w których warunek ocenił „Prawdą."
druk (lista (filtr (Lambda X: x> 5, [2, 4, 6, 8]))))
Powstała lista zawierała tylko 6 i 8, ponieważ były to dwa warunki, w których warunek podany w funkcji oceniono „Prawdą." filtr()
, W połączeniu z wyrażeniem Lambda jest skutecznym sposobem sortowania i testowania list z warunkami.
Zamykanie myśli
Lambdas nie są najpopularniejszym tematem w Pythonie. Wielu programistów nawet ich nie lubi. Nawet twórca Pythona nie jest fanem.
Jeśli się ich lubisz, świetnie. Jeśli nie, nie martw się. Istnieją alternatywy, które zostaną omówione w późniejszych przewodnikach.
Na razie ważne jest, aby być świadomym Lambdas i tego, jak działają. Od czasu do czasu napotykasz je i mogą być najłatwiejszym rozwiązaniem.
Ćwiczenia
- Utwórz wyrażenie lambda, które mnoży dwie liczby i ustaw je równe zmiennej.
- Użyj tej zmiennej, aby zadzwonić do Lambda i przekazać jej dwie liczby.
- Napisz funkcję, która zajmuje funkcję jako parametr. Wywołaj tę funkcję i przekaż ją lambda.
- Użyj
mapa()
funkcja wraz z lambda, aby dodać każdy element na dwóch listach. - Użyj
filtr()
funkcja wraz z lambda, aby przetestować, czy każdy element na liście jest nieparzystny.
Powiązane samouczki Linux:
- Rzeczy do zainstalowania na Ubuntu 20.04
- Wprowadzenie do automatyzacji, narzędzi i technik Linuksa
- Rzeczy do zrobienia po zainstalowaniu Ubuntu 20.04 Focal Fossa Linux
- Mint 20: Lepsze niż Ubuntu i Microsoft Windows?
- Hung Linux System? Jak uciec do wiersza poleceń i…
- Ubuntu 20.04 Przewodnik
- Rzeczy do zainstalowania na Ubuntu 22.04
- Mastering Bash Script Loops
- Rzeczy do zrobienia po zainstalowaniu Ubuntu 22.04 JAMMY Jellyfish…
- Jak korzystać z ADB Android Debug Bridge do zarządzania Androidem…
- « Skrypt Perl w celu odzyskania zewnętrznego adresu IP
- Jak tworzyć i manipulować archiwami smoły za pomocą Pythona »