single
Lambda-Functies
Veeg om het menu te tonen
Lambda-functies zijn anonieme functies, wat betekent dat ze geen naam hebben. Ze worden aangemaakt met het sleutelwoord lambda en worden vaak gebruikt om korte functies te definiëren waarbij je direct een functie kunt specificeren.
De basis-syntaxis van een lambda-functie is als volgt:
lambda arguments: expression
lambda: het sleutelwoord dat het begin van een lambda-functiedefinitie aangeeft;arguments: de lijst met argumenten die de functie accepteert;expression: de expressie die wordt uitgevoerd wanneer de functie wordt aangeroepen. Het resultaat van de expressie wordt als waarde van de functie geretourneerd.
Het belangrijkste kenmerk van lambda-functies is hun beknopte syntaxis. Ze zijn handig wanneer je een eenvoudige functie wilt definiëren zonder veel code te schrijven.
Enkele en Meerdere Argumenten
Een lambda-functie kan één of meerdere argumenten accepteren:
1234567# Single argument square = lambda x: x**2 print(square(5)) # 25 # Multiple arguments add = lambda x, y: x + y print(add(3, 5)) # 8
Conditionele logica in lambda-functies
Een ternaire expressie gebruiken om conditionele logica toe te voegen binnen een lambda:
123is_even = lambda x: "even" if x % 2 == 0 else "odd" print(is_even(4)) # "even" print(is_even(7)) # "odd"
Lambda gebruiken met ingebouwde functies
Een veelvoorkomend gebruik is het combineren van lambda-functies met ingebouwde functies zoals map() en filter():
123456789prices = [100, 200, 300] # Apply 10% discount to each price discounted = list(map(lambda price: price * 0.9, prices)) print(discounted) # [90.0, 180.0, 270.0] # Keep only prices above 150 expensive = list(filter(lambda price: price > 150, prices)) print(expensive) # [200, 300]
Je kunt ook max() gebruiken binnen een lambda om randgevallen direct binnen de expressie af te handelen:
123safe_value = lambda x: max(x, 0) # Returns 0 if x is negative print(safe_value(-5)) # 0 print(safe_value(10)) # 10
De functie max(a, b) vergelijkt twee getallen en geeft het grootste terug. Wanneer je een variabele combineert met 0 - zoals in max(x, 0) - fungeert dit als een vangnet tegen negatieve getallen:
-
Als x positief is (bijvoorbeeld 100), geeft
max(100, 0)100 terug omdat 100 groter is dan 0. -
Als x negatief is (bijvoorbeeld -50), geeft
max(-50, 0)0 terug omdat 0 groter is dan -50.
Dit maakt een complexe if-else-structuur overbodig wanneer je wilt dat een negatief of ongeldig bedrag direct 0 wordt.
Lambda-functies zijn het meest geschikt voor korte, enkelvoudige expressielogica. Als je functie meerdere regels of complexe logica vereist, is een reguliere def-functie een betere keuze.
Veeg om te beginnen met coderen
Er is een lijst met prijzen (prices), en er moet een lambda-expressie worden geïmplementeerd die een prijs als parameter neemt en daar 13% belasting van aftrekt.
- Definieer een lambda-expressie met behulp van het trefwoord
lambda. - De lambda-expressie moet één parameter (
price) accepteren. - Als de
pricenegatief is, wordt deze als ongeldig beschouwd en moet er 0 worden geretourneerd met behulp van de functiemax()direct binnen de lambda-expressie. - De lambda moet eerst de prijs controleren en vervolgens 13% aftrekken van het geldige bedrag.
- Gebruik een list comprehension om
apply_taxtoe te passen op elk element inprices.
Oplossing
Bedankt voor je feedback!
single
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.