Lambda og map

lambda og map er det man kalder anonyme funktioner. Det er en hurtig måde at få Python til at lave beregninger baseret på simple funktioner.

lambda bruges når man skal lave beregninger med kendte variabler og map bruges hvis vi lave beregninger ud fra lister.

lambda

Lad os kigge på et eksempel hvor vil vil finde kvadrattallet:

>>> kvadrattal = lambda x : pow(x,2)
>>> kvadrattal(2)
4

Når man bruger lambda funktionen skal man altså angive variablen, sætte et kolon og skrive funktionsberegningen.

Skulle vi have gjort det uden lambda funktionen, skulle vi have lavet en funktion.

>>> def kvadrattal2(x):
    resultat = pow(x,2)
    print(resultat)
    
>>> kvadrattal(2)
4

lambda er altså en hurtig måde at lave funktioner på.

lambda kan også bruges med flere variabler. f.eks. til beregning af trekanter.

>>> Areal_trekant = lambda h,g : 0.5 * h * g
>>> Areal_trekant(4,5)
10.0

map

map skal bruge to argumenter: en funktion og en liste af numre.

Lad os sige vi har en række af tal, hvor vi gerne vil finde kvadrattallet:

>>> sekvens = [2,5,7,13]
>>> kvadrattal3 = map(lambda x : pow(x,2), sekvens)
>>> print(list(kvadrattal3))
[4, 25, 49, 169]

Læg mærke til at det er listen der skal printes, da map udregner alle værdierne på en gang.

Det kan vi f.eks. bruge hvis vi gerne vil finde nogle konkrete trekanttal, som er giver ved formlen:

$$ T_n = \frac {n \cdot (n+1)} 2 $$
>>> tal = [2,5,19,21]
>>> trekanttal = map(lambda n : (n * (n + 1))/2, tal)
>>> print(list(trekanttal))
[3.0, 15.0, 190.0, 231.0]