I den här artikeln kommer vi att försöka lära oss mer om Python Lambda.
Definition
Lambda är en funktion definierad utan namn. Detta kan ta flera argument, men endast ett uttryck är tillåtet som utvärderas och returneras. Där funktionsobjekt krävs kan vi använda lambdafunktionen.
Syntax:
lambda argument: uttryck
Exempel 1: Funktionen nedan används för att beräkna kuben för ett tal.
def kub (a):returnera a * a * a
tryck (kub (3))
Ovanstående funktion kan skrivas med lambda, som visas nedan:
p = lambda x: x * x * xskriva ut (p (3))
Exempel 2: Funktionen nedan används för att beräkna summan av två nummer.
def sum_2 (x, y):returnera x + y
skriv ut (sum_2 (10,20))
Ovanstående funktion kan skrivas med lambda, som visas nedan:
p = lambda x, y: x + ytryck (p (10,20))
Exempel 3: Exemplet nedan för lambda tar flera argument.
p = lambda x, y, z: x + y + zskriva ut (p (10, 5, 3))
Exempel 4: Denna funktion multiplicerar antalet med 2 och kan skrivas med Lambda-funktionen enligt nedan:
def func (n):retur lambda x: x * n
multiplicera_by_2 = funk (2)
skriv ut (multiplicera_by_2 (11))
skriv ut (multiplicera_by_2 (15))
Exempel 5: Funktionen tar funktionen som ett argument och returnerar resultatet.
funktionsargument = lambda p, f: p + f (p)skriva ut (funktionsargument (5, lambda p: p * p))
skriva ut (funktionsargument (10, lambda x: x - 3))
skriv ut (funktionsargument (10, lambda x: x + 5))
skriva ut (funktionsargument (10, lambda x: x / 5))
Exempel 6: I exemplet nedan används lambda för att sortera värdena.
# (namn, efternamn, ålder)data = [("Sachin", "Tendulkar", "42"), ("Rahul", "Dravid", "44"), ("Virendra", "Sehwag", "40")]
data.sortera (nyckel = lambda x: x [0]) # sortera baserat på namn
skriva ut (data)
data = [("Sachin", "Tendulkar", "42"), ("Rahul", "Dravid", "44"), ("Virendra", "Sehwag", "40")]
data.sortera (nyckel = lambda x: x [1]) # sortera baserat på efternamn
skriva ut (data)
data = [("Sachin", "Tendulkar", "42"), ("Rahul", "Dravid", "44"), ("Virendra", "Sehwag", "40")]
data.sortera (nyckel = lambda x: x [2]) # sortera baserat på ålder
skriva ut (data)
Gå nu till python3-tolk.
Lambda-funktionen används i många inbyggda metoder. Följande är några exempel:
1. Karta
Denna funktion kartlägger varje element i sekvens med lambdafunktionen.
Syntax:
karta (funktion, seq)
Ex:
nummer = [1,2,3,4,5,6]
Här multiplicerar vi varje element i listan med 2.
mul_2 = karta (lambda x: x * 2, nums)
skriv ut (lista (mul_2)) # Det returnerar kartobjekt och skriver det som lista.
I ovanstående funktion överförs varje element i listan till lambdafunktionen och lambdafunktionen multiplicerar den med 2.
nummer = [1,2,3,4,5,6]mul_2 = karta (lambda x: x * 2, nums)
skriva ut (lista (mul_2))
2. Filtrera
Denna funktion filtrerar bort alla element i en lista som lambdafunktionen returnerar True för.
Syntax:
filter (funktion, seq)
Ex:
nums = [0,1,2,3,4,5,6,7,8,9,10]
udda_nummer = filter (lambda x: x% 2, nummer)
print (list (odd_nums)) # Det returnerar kartobjekt och skriver fram det som en lista.
odd_nums = filter (lambda x: x% 2, nums)
skriv ut (lista (udda_nummer))
3. Minska
Den här funktionen returnerar ett enda värde genom att använda funktionsfunktionen () till sekvensen.
Syntax:
minska (funk, seq)
Ex:
nums = [0,1,2,3,4,5,6,7,8,9,10]
värde = minska (lambda x, y: x + y, nums)
skriva ut (värde)
I listan ovan tar de två första elementen och utför tillägg. Resultatet av ett tillägg läggs till det tredje elementet och så vidare. Slutligen kommer den att returnera ett enda värde.
Obs! Den här metoden är inte tillgänglig i python3 + -versionen.
nums = [0,1,2,3,4,5,6,7,8,9,10]värde = minska (lambda x, y: x + y, nums)
skriva ut (värde)
Slutsats
Från den här artikeln har vi lärt oss många aspekter av lambdafunktionen. Beroende på vad programmet behöver kan vi använda det och göra bättre pythonkodning. Detta används oftast för att skicka argument till en annan funktion (till exempel har vi sett ovan funktioner kartlägga, filtrera och minska).