Lambda uttryck är en kraftfull funktion i programmeringsspråket Python . Men de kan vara lite skrämmande vid första anblicken , särskilt eftersom de inte har någon direkt motsvarighet i språk som Java som de flesta programmering kurser ges i. Dessa uttryck tillåter programmeraren att definiera namngivna funktioner i farten och tilldela dem till ett variabelnamn . Du kan skapa en mängd funktioner med lambda och tilldela dem till en enda variabel namn . Instruktioner
1
Definiera en funktion med lambda sökord och tilldela den till " sum " variabelnamn
>>> sum = lambda x , y : . X + y
test för att se om din lambda funktionen fungerar med följande kommando :
>>> summa ( 2,2 ) 4
Detta visar den absoluta minimum för lambda , men du kan göra lite mer med det .
2
Definiera mer än ett lambda -funktion till en enda variabel .
>>> drift = { ' summa ' : lambda x , y : x + y , ' sub ' : lambda x , y : xy , " mul " : lambda x , y : x * y , ' div ' : lambda x , y : x /y } >>> operation [ ' sum ' ] ( 2,2 ) 4 >>> drift [ ' mul ' ] ( 2,4 ) 8 >>> drift [ ' div ' ] ( 4,4 ) 1 >>> drift [ ' sub ' ] ( 4,1 ) 3 bilder
som fortfarande inte avslöja en av de mest fantastiska funktioner i lambda . I själva verket , mer än någon annan funktion , är detta den som genererar mest spänning om lambda funktioner i äldre språk som LISP som stödde det .
3
Använd lambda till , i ett enda linje , utföra en operation på varje element i en lista och returnerar en ny lista som innehåller resultaten av operationen .
>>> alist = [ 0 , 1 , 2 , 3 , 4 ] > >> map ( lambda x : x * 6 , alist ) [ 0 , 6 , 12 , 18 , 24 ]
för ett annat exempel , för att hitta längden av alla ord i en sträng , använd efter lambda -funktion :
>>> string = " det var en mycket lång dag på kontoret , men när jag kommer hem till dig , är det allt värt . " >>> , map ( lambda x : len ( x) , String.split ( ) ) [ 2 , 3 , 1 , 4 , 4 , 3 , 2 , 3 , 7 , 3 , 4 , 1 , 4 , 4 , 2 , 4 , 2 , 2 , 3 , 11 ]
Detta tillåter en programmerare att göra , i ett kort och lättläst linje , vad ett Java-programmerare skulle kräva fyra eller fem rader för att uppnå .