lambda
Krótka funkcja anonimowa zapisana w jednym wyrażeniu.
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: wyrazenieDobre praktyki
#- Do prostych przekształceń list czytelniejsze od
mapz lambdą jest wyrażenie listowe. - Przy sortowaniu po polu możesz też użyć
operator.itemgetter(1)zamiast lambdy.
Powiązane hasła
#- lambda vs deflambda tworzy krótką, anonimową funkcję z jednym wyrażeniem, a def definiuje nazwaną funkcję, która może mieć wiele instrukcji, wartości domyślne i docstring.
- defDefiniuje funkcję: nazwany blok kodu z parametrami, który można wywoływać wielokrotnie.
- sorted()Zwraca nową, posortowaną listę z elementów dowolnej kolekcji.
- map()Wywołuje funkcję dla każdego elementu i zwraca iterator wyników.
- filter()Zwraca iterator elementów, dla których funkcja zwraca prawdę.
Ćwicz w lekcjach
#Widzisz błąd albo brakuje przykładu? Napisz do nas.