single
Lambda-funksjoner
Sveip for å vise menyen
Lambda-funksjoner er anonyme funksjoner, det vil si at de ikke har noe navn. De opprettes ved å bruke nøkkelordet lambda og brukes ofte til å definere korte funksjoner der du kan spesifisere en funksjon direkte.
Den grunnleggende syntaksen for en lambda-funksjon er som følger:
lambda arguments: expression
lambda: nøkkelordet som markerer starten på en lambda-funksjon;arguments: listen over argumenter funksjonen tar imot;expression: uttrykket som utføres når funksjonen kalles. Resultatet av uttrykket returneres som funksjonens verdi.
Hovedtrekket ved lambda-funksjoner er den konsise syntaksen. De er praktiske når du trenger å definere en enkel funksjon uten å skrive mye kode.
Enkle og flere argumenter
En lambda-funksjon kan ta ett 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 logikk i lambda-funksjoner
Du kan bruke et ternært uttrykk for å legge til betinget logikk inne i en lambda:
123is_even = lambda x: "even" if x % 2 == 0 else "odd" print(is_even(4)) # "even" print(is_even(7)) # "odd"
Bruk av lambda med innebygde funksjoner
Et vanlig bruksområde er å kombinere lambda-funksjoner med innebygde funksjoner 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å bruke max() inne i en lambda for å håndtere spesialtilfeller direkte i uttrykket:
123safe_value = lambda x: max(x, 0) # Returns 0 if x is negative print(safe_value(-5)) # 0 print(safe_value(10)) # 10
Lambda-funksjoner egner seg best for kort, enkel uttrykkslogikk. Hvis funksjonen din krever flere linjer eller kompleks logikk, er en vanlig def-funksjon et bedre valg.
Sveip for å begynne å kode
Det finnes en liste med priser (prices), og et lambda-uttrykk skal implementeres som tar en pris som parameter og trekker fra 13 % skatt.
- Definer et lambda-uttrykk ved å bruke nøkkelordet
lambda. - Lambda-uttrykket skal ta én parameter (
price). - Hvis
priceer negativ, anses den som ugyldig og skal returnere 0 ved å bruke funksjonenmax()direkte i lambda-uttrykket. - Lambdaen skal først sjekke prisen og deretter trekke fra 13 % fra det gyldige beløpet.
- Bruk en list comprehension for å bruke
apply_taxpå hver enkelt verdi iprices.
Løsning
Takk for tilbakemeldingene dine!
single
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår