Om Lambda-funktioner
Lambda-funktioner i python er navngivne og anonyme funktioner, der kan bruges til at skabe udtryk, der returnerer en slags værdi baseret på beregningerne implementeret i selve udtrykket. Logik i disse lambda-funktioner kan skrives på en kortfattet måde, normalt noget, der passer let i en linje. Nogle gange kan de være vanskelige at læse, især hvis folk ikke er fortrolige med Lambda-funktioner. De har dog fordelen ved at holde tingene sammen inden for kodeblokke, og de hjælper bedre med at forstå sammenhængen.
Syntaks for Lambda-funktioner
Syntaksen for en Lambda-funktion i Python ser sådan ud:
gang = lambda x, y: x * yDen første del af lambda-udtrykket, lige før kolon (:) symbol, tager parametre som argumenter. Den anden del, efter kolon-symbolet, skal være en returværdi. Denne returværdi kan også være et udtryk med logik. Faktisk bruges Lambda-funktioner næsten hele tiden til at implementere nogle logik på leverede argumenter og derefter returnere det endelige resultat.
For at teste Lambda-funktionen, der er anført ovenfor, kan du bruge følgende erklæring:
udskriv (gang (3, 4))Du skal få følgende output:
12Den samme lambda-funktion ville ellers blive skrevet på følgende måde:
def multiplicere (x, y):returner x * y
udskriv (gang (3, 4))
Begge kodeeksempler giver den samme output. Nogle flere eksempler på Lambda-funktioner forklares nedenfor.
Pass Lambda fungerer som argumenter
Du kan bruge Lambda-funktioner til at foretage beregninger og levere returværdien som argumenter til andre funktioner. Sorteringsmetode i Python tager et "nøgle" -argument, hvor du kan specificere en kaldbar funktion, der tager et enkelt argument til sorteringsformål. I stedet for først at definere en separat funktion, der returnerer en nøgle og derefter levere funktionens reference til argumentet, kan du blot bruge en Lambda-funktion.
frugter = [(2, 'æbler'), (4, 'appelsiner'), (3, 'bananer')]frugt.sorter (nøgle = lambda-element: element [0])
print (frugt)
Koden ovenfor producerer følgende output:
[(2, 'æbler'), (3, 'bananer'), (4, 'appelsiner')]Du kan bruge lambda i enhver sådan metode, der tager en kaldbar funktion som argument (filtermetode for eksempel).
Brug Lambda-funktioner i listeforståelser
Du kan bruge Lambda i listeforståelser, og en liste oprettes behørigt ud fra de værdier, der returneres af Lambda-udtrykket.
get_square = lambda a: a * afirkanter = [get_square (x) for x i rækkevidde (5)]
print (firkanter)
Dette giver følgende output:
[0, 1, 4, 9, 16]Kodeprøven ovenfor kan også skrives på følgende måde, hvor “x” leveres til lambda-funktionen som argument:
firkanter = [(lambda x: x * x) (x) for x i området (5)]print (firkanter)
Dette eksempel illustrerer bare brugen af Lambda-funktioner i listeforståelser. Du kan ellers let beregne firkanter ved hjælp af en minimal sætningsforståelse:
udskriv ([x * x for x i området (5)])Brug Lambda-funktioner i Python-ordbøger
Kodeprøven nedenfor illustrerer Lambda-funktioner, der bruges i nøgleværdipar i en Python-ordbog. Når du er defineret, kan du ringe til disse funktioner når som helst.
beregne = 'sum': lambda a, b: a + b, 'forskel': lambda a, b: a - budskrive (beregne ['sum'] (4, 5))
udskrive (beregne ['forskel'] (4, 5))
Du skal få følgende output efter at have kørt ovenstående kode:
9-1
Konklusion
Lambda-funktioner giver en fremragende måde at skrive stenografiske udtryk og holde tingene pæne og organiserede uden unødvendigt at skabe mange navngivne funktioner. Imidlertid kan overbrug af Lambda-funktioner gøre koden vanskelig at læse, især når der ses på kode af mere end en person. Det er bedre at have en mere læselig kode (selvom den er ordentlig) end at have noget, der kan være lidt svært at forstå ved besøg.