Om Lambda Funksjoner
Lambda-funksjoner i python er navnløse og anonyme funksjoner som kan brukes til å lage uttrykk som returnerer en slags verdi basert på beregningene implementert i selve uttrykket. Logikk i disse lambdafunksjonene kan skrives på en kortfattet måte, vanligvis noe som passer lett i en linje. Noen ganger kan de være vanskelige å lese, spesielt hvis folk ikke er kjent med Lambda-funksjoner. Imidlertid har de fordelen av å holde ting sammen i kodeblokker, og de hjelper bedre med å forstå konteksten.
Syntaks for Lambda-funksjoner
Syntaksen til en Lambda-funksjon i Python ser slik ut:
multipliser = lambda x, y: x * yDen første delen av lambdauttrykket, like før kolon (:) -symbolet, tar parametere som argumenter. Den andre delen, etter kolon-symbolet, må være en returverdi. Denne returverdien kan også være et uttrykk med logikk. Faktisk brukes Lambda-funksjoner nesten hele tiden for å implementere noen logikk på de angitte argumentene og deretter returnere det endelige resultatet.
For å teste Lambda-funksjonen som er angitt ovenfor, kan du bruke følgende uttalelse:
skriv ut (multipliser (3, 4))Du bør få følgende utdata:
12Den samme lambda-funksjonen ville ellers blitt skrevet på følgende måte:
def multipliser (x, y):returner x * y
skriv ut (multipliser (3, 4))
Begge kodeeksemplene gir samme utdata. Noen flere eksempler på Lambda-funksjoner er forklart nedenfor.
Pass Lambda fungerer som argumenter
Du kan bruke Lambda-funksjoner til å gjøre beregninger og levere returverdien som argumenter til andre funksjoner. Sorteringsmetode i Python tar et "nøkkel" -argument der du kan spesifisere en kallbar funksjon som tar et enkelt argument for sorteringsformål. I stedet for først å definere en egen funksjon som returnerer en nøkkel og deretter levere funksjonens referanse til argumentet, kan du ganske enkelt bruke en Lambda-funksjon.
frukt = [(2, 'epler'), (4, 'appelsiner'), (3, 'bananer')]frukt.sorter (nøkkel = lambda-element: element [0])
trykk (frukt)
Koden ovenfor vil gi følgende utdata:
[(2, 'epler'), (3, 'bananer'), (4, 'appelsiner')]Du kan bruke lambda i en hvilken som helst metode som tar en kallbar funksjon som argument (filtermetode for eksempel).
Bruk Lambda-funksjoner i listeforståelser
Du kan bruke Lambda i listeforståelse, og en liste vil bli opprettet fra verdiene som returneres av Lambda-uttrykket.
get_square = lambda a: a * afirkanter = [get_square (x) for x i rekkevidde (5)]
trykk (firkanter)
Dette vil gi følgende utdata:
[0, 1, 4, 9, 16]Kodeprøven ovenfor kan også skrives på følgende måte der “x” tilføres lambdafunksjonen som et argument:
firkanter = [(lambda x: x * x) (x) for x i området (5)]trykk (firkanter)
Dette eksemplet illustrerer bare bruk av Lambda-funksjoner i listeforståelse. Du kan ellers enkelt beregne firkanter ved hjelp av en minimal uttalelse av listeforståelse:
skriv ut ([x * x for x i området (5)])Bruk Lambda-funksjoner i Python-ordbøker
Kodeprøven nedenfor illustrerer Lambda-funksjoner som brukes i nøkkelverdipar i en Python-ordbok. Når du er definert, kan du ringe disse funksjonene når som helst.
beregne = 'sum': lambda a, b: a + b, 'difference': lambda a, b: a - bskriv ut (beregne ['sum'] (4, 5))
skriv ut (beregne ['forskjell'] (4, 5))
Du bør få følgende utdata etter å ha kjørt ovennevnte kode:
9-1
Konklusjon
Lambda-funksjoner gir en utmerket måte å skrive stenografiske uttrykk og holde ting pent og organisert uten unødvendig å skape mange navngitte funksjoner. Imidlertid kan overbruk av Lambda-funksjoner gjøre koden vanskelig å lese, spesielt når koden blir sett på av mer enn en person. Det er bedre å ha mer lesbar kode (selv om den er ordentlig) enn å ha noe som kan være litt vanskelig å forstå på besøk.