När är det bra att använda lambda i python?
När är det bra att använda lambda i python? Läste något om att det tar in hur många värden som helst, men får bara innehålla ett uttryck. Förstår inte riktigt syftet.
lambda är ett alternativt, mer lättviktigt sätt att skapa korta funktioner. T.ex. är
def add_two(x):
return x + 2
motsvarande
add_two = lambda x: x + 2
Men de brukar inte sparas i variabler på det här sättet, utan brukar vara mer "engångsfunktioner" som skapas och skickas iväg direkt dit de behövs. Ofta som hjälpfunktion i en annan funktion. sort() och sorted() t.ex. tar ett valfritt key-argument, som är en hjälpfunktion som berättar för sort vad den ska sortera efter. Det är ett exempel där man ofta ser lambda-funktioner, se studentexemplet här. Det går att göra samma sak med en vanlig funktion:
student_tuples = [
('john', 'A', 15),
('jane', 'B', 12),
('dave', 'B', 10),
]
def select_age(student):
return student[2]
sorted(student_tuples, key=select_age)
Men eftersom det är funktioner man sannolikt inte behöver använda nån annanstans anses det ofta lite overkill och fult att göra på det här sättet. Särskilt om man gör många. Så då använder folk lambda istället.