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 lambda-sleutelwoord 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
Voorwaardelijke logica in lambda-functies
Een ternaire expressie gebruiken om voorwaardelijke 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
xpositief is (bijvoorbeeld 100), geeftmax(100, 0)100 terug omdat 100 groter is dan 0; -
Als
xnegatief is (bijvoorbeeld -50), geeftmax(-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.