Pytonorm

Hur man använder Lambda-funktioner i Python

Hur man använder Lambda-funktioner i Python
Den här artikeln kommer att förklara hur man använder Lambda-funktioner i Python. Lambda-funktioner kan användas för att skriva kortfattade enlinjer, implementera logik och snabbt få returvärden som kan matas till andra uttryck.

Om Lambda-funktioner

Lambda-funktioner i python är namnlösa och anonyma funktioner som kan användas för att skapa uttryck som returnerar någon form av värde baserat på beräkningarna som implementeras i själva uttrycket. Logiken i dessa lambdafunktioner kan skrivas på ett kortfattat sätt, vanligtvis något som lätt passar i en rad. Ibland kan de vara svåra att läsa, särskilt om människor inte är väl insatta i Lambda-funktioner. Men de har fördelen att hålla saker ihop inom kodblock och de hjälper bättre att förstå sammanhanget.

Syntax för Lambda-funktioner

Syntaxen för en Lambda-funktion i Python ser ut så här:

multiplicera = lambda x, y: x * y

Den första delen av lambdauttrycket, strax före kolon (:) -symbolen, tar parametrar som argument. Den andra delen, efter kolon-symbolen, måste vara ett returvärde. Detta returvärde kan också vara ett uttryck med logik. I själva verket används Lambdafunktioner nästan hela tiden för att implementera lite logik på levererade argument och sedan returnera det slutliga resultatet.

För att testa Lambda-funktionen som anges ovan kan du använda följande uttalande:

skriva ut (multiplicera (3, 4))

Du bör få följande utdata:

12

Samma lambdafunktion skulle annars skrivas på följande sätt:

def multiplicera (x, y):
returnera x * y
skriva ut (multiplicera (3, 4))

Båda kodproverna ger samma utdata. Några fler exempel på Lambda-funktioner förklaras nedan.

Passera Lambda fungerar som argument

Du kan använda Lambda-funktioner för att göra beräkningar och ange returvärdet som argument till andra funktioner. Sorteringsmetod i Python tar ett ”nyckel” -argument där du kan ange en anropbar funktion som tar ett enda argument för sorteringsändamål. Istället för att först definiera en separat funktion som returnerar en nyckel och sedan tillhandahålla funktionens referens till argumentet kan du helt enkelt använda en Lambda-funktion.

frukt = [(2, "äpplen"), (4, "apelsiner"), (3, "bananer")]
frukter.sort (key = lambda element: element [0])
tryck (frukt)

Koden ovan kommer att producera följande utdata:

[(2, "äpplen"), (3, "bananer"), (4, "apelsiner")]

Du kan använda lambda i vilken metod som helst som tar en kallbar funktion som argument (till exempel filtermetod).

Använd Lambda-funktioner i listförståelser

Du kan använda Lambda i listförståelser och en lista kommer att skapas vederbörligen från de värden som returneras av Lambda-uttrycket.

get_square = lambda a: a * a
rutor = [get_square (x) för x i intervall (5)]
skriva ut (rutor)

Detta ger följande resultat:

[0, 1, 4, 9, 16]

Kodprovet ovan kan också skrivas på följande sätt där ”x” levereras till lambdafunktionen som ett argument:

rutor = [(lambda x: x * x) (x) för x i intervallet (5)]
skriva ut (rutor)

Detta exempel illustrerar bara användningen av Lambda-funktioner i listförståelser. Du kan annars enkelt beräkna rutor med ett minimalt uttalande om listförståelse:

skriv ut ([x * x för x i intervall (5)])

Använd Lambda-funktioner i Python-ordböcker

Kodprovet nedan illustrerar Lambda-funktioner som används inom nyckel-värdepar i en Python-ordlista. När du väl har definierat kan du ringa dessa funktioner när som helst.

beräkna = 'summa': lambda a, b: a + b, 'skillnad': lambda a, b: a - b
skriva ut (beräkna ['summa'] (4, 5))
skriva ut (beräkna ['skillnad'] (4, 5))

Du bör få följande utdata efter att ha kört ovanstående kod:

9
-1

Slutsats

Lambda-funktioner ger ett utmärkt sätt att skriva förkortade uttryck och hålla saker snygga och organiserade utan att onödigt skapa många namngivna funktioner. Men överanvändning av Lambda-funktioner kan göra det svårt att läsa koden, särskilt när mer än en person tittar på koden. Det är bättre att ha mer läsbar kod (även om den är uttömmande) än att ha något som kan vara lite svårt att förstå vid återbesök.

Användbara verktyg för Linux-spelare
Om du gillar att spela spel på Linux är chansen att du kan ha använt appar och verktyg som Wine, Lutris och OBS Studio för att förbättra spelupplevels...
HD Remastered Games för Linux som aldrig tidigare hade en Linux-version
Många spelutvecklare och utgivare kommer med HD-remaster av gamla spel för att förlänga livstiden för franchisen, snälla fans som begär kompatibilitet...
Hur man använder AutoKey för att automatisera Linux-spel
AutoKey är ett verktyg för desktopautomatisering för Linux och X11, programmerat i Python 3, GTK och Qt. Med hjälp av dess skript och MACRO-funktional...