Python

Lambda-functies gebruiken in Python

Lambda-functies gebruiken in Python
Dit artikel legt uit hoe je Lambda-functies gebruikt in Python. Lambda-functies kunnen worden gebruikt om beknopte oneliners te schrijven, logica te implementeren en snel retourwaarden te krijgen die naar andere expressies kunnen worden gevoerd.

Over Lambda-functies

Lambda-functies in python zijn naamloze en anonieme functies die kunnen worden gebruikt om expressies te maken die een soort waarde retourneren op basis van de berekeningen die in de expressie zelf zijn geïmplementeerd. Logica in deze lambda-functies kan op een beknopte manier worden geschreven, meestal iets dat gemakkelijk in één regel past. Soms kunnen ze moeilijk te lezen zijn, vooral als mensen niet goed thuis zijn in Lambda-functies. Ze hebben echter het voordeel dat ze dingen bij elkaar houden binnen codeblokken en ze helpen de context beter te begrijpen.

Syntaxis van Lambda-functies

De syntaxis van een Lambda-functie in Python Ziet er als volgt uit:

vermenigvuldigen = lambda x, y: x * y

Het eerste deel van de lambda-expressie, net voor het dubbele punt (:) symbool, neemt parameters als argumenten. Het tweede deel, na de dubbele punt, moet een retourwaarde zijn. Deze retourwaarde kan ook een uitdrukking met logica zijn. In feite worden Lambda-functies bijna altijd gebruikt om enige logica op geleverde argumenten te implementeren en vervolgens het uiteindelijke resultaat te retourneren.

Om de bovengenoemde Lambda-functie te testen, kunt u de volgende verklaring gebruiken:

afdrukken (vermenigvuldigen (3, 4))

Je zou de volgende output moeten krijgen:

12

Dezelfde lambda-functie zou anders op de volgende manier worden geschreven:

def vermenigvuldigen (x, y):
retourneer x * y
afdrukken (vermenigvuldigen (3, 4))

Beide codevoorbeelden geven dezelfde uitvoer. Hieronder worden nog enkele voorbeelden van Lambda-functies uitgelegd:.

Lambda-functies doorgeven als argumenten

U kunt Lambda-functies gebruiken om berekeningen uit te voeren en de geretourneerde waarde als argumenten aan andere functies te geven. De sorteermethode in Python neemt een "sleutel" -argument waar je een aanroepbare functie kunt specificeren die een enkel argument nodig heeft voor sorteerdoeleinden. In plaats van eerst een aparte functie te definiëren die een sleutel retourneert en vervolgens de verwijzing van de functie naar het argument op te geven, kunt u eenvoudig een Lambda-functie gebruiken.

fruit = [(2, 'appels'), (4, 'sinaasappels'), (3, 'bananen')]
fruit.sort(key=lambda-element: element[0])
afdrukken (fruit)

De bovenstaande code zal de volgende uitvoer produceren:

[(2, 'appels'), (3, 'bananen'), (4, 'sinaasappels')]

Je kunt lambda gebruiken in een dergelijke methode die een aanroepbare functie als argument heeft (bijvoorbeeld filtermethode).

Lambda-functies gebruiken in lijstbegrippen

U kunt Lambda gebruiken in lijstbegrippen en er wordt een lijst gemaakt op basis van de waarden die worden geretourneerd door de Lambda-expressie.

get_square = lambda a: a * a
squares = [get_square(x) for x in range(5)]
afdrukken (vierkanten)

Dit levert de volgende uitvoer op:

[0, 1, 4, 9, 16]

Het bovenstaande codevoorbeeld kan ook op de volgende manier worden geschreven, waarbij "x" als argument aan de lambda-functie wordt gegeven:

vierkanten = [(lambda x: x * x)(x) voor x in bereik (5)]
afdrukken (vierkanten)

Dit voorbeeld illustreert alleen het gebruik van Lambda-functies in lijstbegrippen. U kunt anders eenvoudig kwadraten berekenen met behulp van een minimale lijstbegripsverklaring:

print ([x * x voor x in bereik(5)])

Lambda-functies gebruiken in Python-woordenboeken

Het onderstaande codevoorbeeld illustreert Lambda-functies die worden gebruikt binnen sleutel-waardeparen in een Python-woordenboek. Eenmaal gedefinieerd, kunt u deze functies op elk moment oproepen.

berekenen = 'som': lambda a, b: a + b, 'verschil': lambda a, b: a - b
print (bereken['som'](4, 5))
print (bereken['verschil'](4, 5))

U zou de volgende uitvoer moeten krijgen na het uitvoeren van de bovenstaande code:

9
-1

Conclusie

Lambda-functies bieden een uitstekende manier om steno-uitdrukkingen te schrijven en dingen netjes en georganiseerd te houden zonder onnodig veel benoemde functies te maken. Overmatig gebruik van Lambda-functies kan code echter moeilijk leesbaar maken, vooral wanneer code door meer dan één persoon wordt bekeken. Het is beter om meer leesbare code te hebben (zelfs als deze uitgebreid is) dan iets te hebben dat bij een volgend bezoek misschien een beetje moeilijk te begrijpen is.

Open source-poorten van commerciële game-engines
Gratis, open source en platformonafhankelijke game-engine-recreaties kunnen worden gebruikt om zowel oude als enkele van de vrij recente gametitels te...
Beste opdrachtregelspellen voor Linux
De opdrachtregel is niet alleen je grootste bondgenoot bij het gebruik van Linux, hij kan ook de bron van entertainment zijn omdat je hem kunt gebruik...
Beste gamepad-toewijzingsapps voor Linux
Als je graag games op Linux speelt met een gamepad in plaats van een typisch toetsenbord- en muisinvoersysteem, zijn er enkele handige apps voor jou. ...