lambda

Krótka funkcja anonimowa zapisana w jednym wyrażeniu.

Na tej stronie

Przykład

#
Python
students = [("Ania", 92), ("Kuba", 78), ("Ola", 85)]

by_score = sorted(students, key=lambda student: student[1], reverse=True)
print(by_score)

names = list(map(lambda s: s[0].upper(), students))
print(names)
Wynikzapisany wynik, możesz go sprawdzić
[('Ania', 92), ('Ola', 85), ('Kuba', 78)]
['ANIA', 'KUBA', 'OLA']

Definicja i zastosowanie

#

Wyrażenie lambda tworzy małą funkcję bez nazwy: lambda x: x * 2. Po dwukropku może stać tylko jedno wyrażenie, którego wynik zostaje zwrócony. Nie ma tam miejsca na instrukcje ani wiele linii.

Lambdy najczęściej przekazuje się jako argument do innych funkcji, na przykład jako klucz sortowania w sorted() albo funkcję w map() i filter().

Jeśli lambda robi się długa albo przypisujesz ją do zmiennej, lepiej zdefiniować zwykłą funkcję przez def. Będzie miała nazwę w komunikatach błędów i docstring.

Składnia

#
Składnia
lambda parametry: wyrazenie

Dobre praktyki

#
  • Do prostych przekształceń list czytelniejsze od map z lambdą jest wyrażenie listowe.
  • Przy sortowaniu po polu możesz też użyć operator.itemgetter(1) zamiast lambdy.

Powiązane hasła

#

Widzisz błąd albo brakuje przykładu? Napisz do nas.