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 specificere 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 korte 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
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 listeforståelse 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