Jak korzystać z funkcji Lambda w Pythonie (funkcje anonimowe)
Dowiedz się, jak używać funkcji lambda w Pythonie. Opanuj anonimowe funkcje, wbudowane wywołania zwrotne i sortowanie danych list za pomocą kluczy lambda.
Przegląd
W Pythonie funkcje są obywatelami pierwszej klasy, co oznacza, że można je przypisywać do zmiennych, przekazywać jako argumenty do innych funkcji i zwracać z funkcji. Chociaż standardowe funkcje deklaruje się za pomocą słowa kluczowego `def`, Python udostępnia również skróconą składnię do tworzenia anonimowych funkcji wbudowanych: funkcje `lambda`.
Funkcję lambda definiuje się za pomocą słowa kluczowego „lambda”, po którym następuje lista argumentów, dwukropek i pojedyncze wyrażenie. Składnia jest następująca: „argumenty lambda: wyrażenie”. W przeciwieństwie do funkcji `def`, lambdy nie wymagają instrukcji `return`; wynik wyrażenia jest zwracany automatycznie. Ograniczają się do jednej linii logicznej, dzięki czemu idealnie nadają się do prostych, jednorazowych operacji.
Funkcje lambda są najczęściej używane jako argumenty funkcji wyższego rzędu, takich jak `sorted()`, `map()` i `filter()`. Na przykład możesz przekazać funkcję lambda do argumentu „key” funkcji sorted() w celu zdefiniowania niestandardowych kryteriów sortowania lub użyć ich jako lekkich funkcji wywołania zwrotnego w aplikacjach graficznych lub sterowanych zdarzeniami.
Dane wyjściowe kodu i wykonania
Ten skrypt demonstruje konstruowanie lekkich funkcji anonimowych przy użyciu lambdy.
# 1. Simple lambda function assigned to a variable
double = lambda x: x * 2
print("Double of 5:", double(5))
# 2. Multi-argument lambda
add = lambda x, y: x + y
print("Sum of 3 + 4:", add(3, 4))
# 3. Using lambda as a sorting key (sorting by age)
people = [
{"name": "Alice", "age": 28},
{"name": "Bob", "age": 22},
{"name": "Charlie", "age": 35}
]
people.sort(key=lambda person: person["age"])
print("Sorted by age:", people)Double of 5: 10
Sum of 3 + 4: 7
Sorted by age: [{'name': 'Bob', 'age': 22}, {'name': 'Alice', 'age': 28}, {'name': 'Charlie', 'age': 35}]Wdrażanie krok po kroku
- Wpisz słowo kluczowe lambda, a po nim nazwy parametrów rozdzielone przecinkami.
- Umieść dwukropek, po którym następuje pojedyncze wyrażenie, które chcesz obliczyć i zwrócić.
- Przekaż lambdę bezpośrednio jako wywołanie zwrotne do funkcji takich jak sorted(), map() lub filter().
Często zadawane pytania
Czy funkcja lambda może zawierać pętle lub wiele instrukcji?
Nie, funkcje lambda w Pythonie są ściśle ograniczone do pojedynczego wyrażenia. Jeśli potrzebujesz złożonej logiki, pętli lub przypisań zmiennych, musisz zdefiniować funkcję standardową za pomocą def.
Czy powinienem przypisać funkcje lambda do zmiennych?
Generalnie nie. Wytyczne PEP 8 sugerują użycie standardowej instrukcji def zamiast przypisywania lambdy do zmiennej, ponieważ standardowe funkcje zapewniają lepsze nazwy śledzenia stosu.
Powiązane tematy
Dowiedz się, jak sortować listę w Pythonie za pomocą metody sort() i funkcji sorted(). Odkryj przykłady niestandardowego sortowania kluczy i odwrotnej kolejności.
Jak korzystać ze zrozumienia list w PythonieDowiedz się, jak używać wyrażeń listowych w Pythonie. Twórz zwięzłe pętle, stosuj filtry warunkowe i buduj macierze z przejrzystą składnią wizualną.
Polecane zasoby Pythona
Poszerzaj swoją wiedzę dzięki powiązanym interaktywnym samouczkom, ściągawkom i porównaniom kodów.
Funkcje Pythona
Opanuj funkcje Pythona. Dowiedz się, jak pisać kod wielokrotnego użytku za pomocą def, definiować argumenty, zwracać wartości i rozumieć zakres lokalnie i globalnie.
Ściągawka dotycząca funkcji modułu matematycznego Pythona
Skrócona instrukcja obsługi standardowej biblioteki matematycznej języka Python. Dowiedz się, jak korzystać z funkcji trygonometrycznych, logarytmicznych, zaokrąglających i arytmetycznych.
Python kontra JavaScript: który język programowania jest najlepszy?
Kompleksowe porównanie Pythona i JavaScript. Poznaj różnice w składni, wydajność, przypadki użycia (backend vs frontend) i przykłady kodowania.