Om Lambda -funksjoner
Lambda -funksjoner i Python er ikke navngitte og anonyme funksjoner som kan brukes til å lage uttrykk som returnerer en slags verdi basert på beregningene implementert i selve uttrykket. Logikk i disse Lambda -funksjonene kan skrives på en kortfattet måte, vanligvis noe som passer enkelt i en linje. Noen ganger kan de være vanskelige å lese, spesielt hvis folk ikke er godt kjent med Lambda -funksjoner. Imidlertid har de fordelen av å holde ting sammen i kodeblokker, og de hjelper bedre med å forstå konteksten.
Syntaks av Lambda -funksjoner
Syntaksen til en lambda -funksjon i Python ser slik ut:
multiply = lambda x, y: x * yDen første delen av Lambda -uttrykket, like før kolon (:) Symbol, tar parametere som argumenter. Den andre delen, etter kolonsymbolet, må være en returverdi. Denne returverdien kan også være et uttrykk med logikk. Faktisk brukes lambda -funksjoner nesten hele tiden til å implementere litt logikk på medfølgende argumenter og deretter returnere det endelige resultatet.
For å teste lambda -funksjonen som er nevnt ovenfor, kan du bruke følgende uttalelse:
Print (Multiply (3, 4))Du bør få følgende utdata:
12Den samme lambda -funksjonen vil ellers være skrevet på følgende måte:
def multiply (x, y):Begge kodeprøvene vil gi samme utgang. 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. Sort Method in 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')]Koden over vil produsere følgende utgang:
[(2, 'epler'), (3, 'bananer'), (4, 'appelsiner')]Du kan bruke lambda i en slik metode som tar en konkluderbar funksjon som argument (filtermetode for eksempel).
Bruk Lambda -funksjoner i listeforståelser
Du kan bruke Lambda i listeforståelser, og en liste vil bli behørig opprettet fra verdiene som er returnert av Lambda -uttrykket.
get_square = lambda a: a * aDette vil produsere følgende utgang:
[0, 1, 4, 9, 16]Kodeprøven ovenfor kan også skrives på følgende måte der “X” blir levert til Lambda -funksjonen som et argument:
firkanter = [(lambda x: x * x) (x) for x i rekkevidde (5)]Dette eksemplet illustrerer bare bruk av lambda -funksjoner i listeforståelser. Du kan ellers enkelt beregne firkanter ved å bruke en minimal listeforståelsesuttalelse:
print ([x * x for x i rekkevidde (5)])Bruk Lambda -funksjoner i Python Dictionaries
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, 'forskjell': lambda a, b: a - bDu bør få følgende utdata etter å ha kjørt ovennevnte kode:
9Konklusjon
Lambda -funksjoner gir en utmerket måte å skrive korthåndsuttrykk og holde ting pent og organisert uten unødvendig å lage mange navngitte funksjoner. Imidlertid kan overbruk av lambda -funksjoner gjøre kode vanskelig å lese, spesielt når kode blir sett på av mer enn én person. Det er bedre å ha mer lesbar kode (selv om den er ordentlig) enn å ha noe som kan være litt vanskelig å forstå på Revisits.