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.

Wypróbuj to rozwiązanie w Edytorze

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.

lambda_functions.py
Spróbuj w Edytorze
# 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)
Wyjście terminala
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

Polecane zasoby Pythona

Poszerzaj swoją wiedzę dzięki powiązanym interaktywnym samouczkom, ściągawkom i porównaniom kodów.