1 svar
178 visningar
Dualitetsförhållandet 1287
Postad: 11 feb 2021 13:03

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.

Skaft 2373 – F.d. Moderator
Postad: 11 feb 2021 13:28

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.

Svara Avbryt
Close