single
Lambda-Funktioner
Svep för att visa menyn
Lambda-funktioner är anonyma funktioner, vilket innebär att de inte har något namn. De skapas med hjälp av nyckelordet lambda och används ofta för att definiera korta funktioner där du kan ange en funktion direkt på plats.
Den grundläggande syntaxen för en lambda-funktion är följande:
lambda arguments: expression
lambda: nyckelordet som markerar början på en lambda-funktionsdefinition;arguments: listan över argument som funktionen tar emot;expression: uttrycket som körs när funktionen anropas. Resultatet av uttrycket returneras som funktionens värde.
Den viktigaste egenskapen hos lambda-funktioner är deras koncisa syntax. De är praktiska när du behöver definiera en enkel funktion utan att skriva mycket kod.
Enkelt och flera argument
En lambda-funktion kan ta emot ett eller flera argument:
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
Villkorslogik i lambda-funktioner
Du kan använda ett ternärt uttryck för att lägga till villkorslogik i en lambda:
123is_even = lambda x: "even" if x % 2 == 0 else "odd" print(is_even(4)) # "even" print(is_even(7)) # "odd"
Användning av lambda med inbyggda funktioner
Ett vanligt användningsområde är att kombinera lambda-funktioner med inbyggda funktioner som map() och 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 också använda max() i en lambda för att hantera specialfall direkt i uttrycket:
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 lämpar sig bäst för korta, enstaka uttryck. Om din funktion kräver flera rader eller komplex logik är en vanlig def-funktion ett bättre val.
Svep för att börja koda
Det finns en lista med priser (prices), och ett lambda-uttryck behöver implementeras som tar ett pris som parameter och drar av 13 % skatt från det.
- Definiera ett lambda-uttryck med hjälp av nyckelordet
lambda. - Lambda-uttrycket ska ta en parameter (
price). - Om
priceär negativt, betraktas det som ogiltigt och returnerar 0 genom att använda funktionenmax()direkt i lambda-uttrycket. - Lambda-uttrycket ska först kontrollera priset och sedan dra av 13 % från det giltiga beloppet.
- Använd en list comprehension för att applicera
apply_taxpå varje element iprices.
Lösning
Tack för dina kommentarer!
single
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal