single
Lambda-Funktioner
Stryg for at vise menuen
Lambda-funktioner er anonyme funktioner, hvilket betyder, at de ikke har et navn. De oprettes ved hjælp af nøgleordet lambda og bruges ofte til at definere korte funktioner, hvor du kan angive en funktion direkte.
Den grundlæggende syntaks for en lambda-funktion er som følger:
lambda arguments: expression
lambda: nøgleordet, der angiver starten på en lambda-funktionsdefinition;arguments: listen over argumenter, som funktionen modtager;expression: udtrykket, der udføres, når funktionen kaldes. Resultatet af udtrykket returneres som funktionens værdi.
Den vigtigste egenskab ved lambda-funktioner er deres kompakte syntaks. De er praktiske, når du har brug for at definere en simpel funktion uden at skrive meget kode.
Enkelt og flere argumenter
En lambda-funktion kan tage et eller flere argumenter:
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
Betinget logik i lambda-funktioner
En ternær udtryk kan bruges til at tilføje betinget logik i en lambda:
123is_even = lambda x: "even" if x % 2 == 0 else "odd" print(is_even(4)) # "even" print(is_even(7)) # "odd"
Brug af lambda med indbyggede funktioner
Et almindeligt anvendelsesområde er at kombinere lambda-funktioner med indbyggede funktioner som map() og 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]
Du kan også bruge max() inde i en lambda for at håndtere edge cases direkte i udtrykket:
123safe_value = lambda x: max(x, 0) # Returns 0 if x is negative print(safe_value(-5)) # 0 print(safe_value(10)) # 10
Funktionen max(a, b) sammenligner to tal og returnerer det største. Når du parrer en variabel med 0 – som i max(x, 0) – fungerer det som et sikkerhedsnet mod negative tal:
-
Hvis x er positiv (f.eks. 100), returnerer
max(100, 0)værdien 100, fordi 100 er større end 0. -
Hvis x er negativ (f.eks. -50), returnerer
max(-50, 0)værdien 0, fordi 0 er større end -50.
Dette eliminerer behovet for en kompleks if-else-sætning, når du vil sikre, at ethvert negativt eller ugyldigt beløb straks bliver til 0.
Lambda-funktioner egner sig bedst til kort, enkeltudtrykslogik. Hvis din funktion kræver flere linjer eller kompleks logik, er en almindelig def-funktion et bedre valg.
Swipe to start coding
Der er en liste af priser (prices), og et lambda-udtryk skal implementeres, som tager en pris som parameter og fratrækker 13% skat fra denne.
- Definér et lambda-udtryk ved hjælp af nøgleordet
lambda. - Lambda-udtrykket skal tage én parameter (
price). - Hvis
priceer negativ, betragtes den som ugyldig og skal returnere 0 ved at bruge funktionenmax()direkte i lambda-udtrykket. - Lambdaen skal først kontrollere prisen og derefter fratrække 13% fra det gyldige beløb.
- Brug en list comprehension til at anvende
apply_taxpå hver enkelt iprices.
Løsning
Tak for dine kommentarer!
single
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat