Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Lambda-Funktioner | Rekursion och Lambda-Funktioner
Handledning om Pythonfunktioner
Avsnitt 5. Kapitel 4
single

single

bookLambda-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
copy

Villkorslogik i lambda-funktioner

Du kan använda ett ternärt uttryck för att lägga till villkorslogik i en lambda:

123
is_even = lambda x: "even" if x % 2 == 0 else "odd" print(is_even(4)) # "even" print(is_even(7)) # "odd"
copy

Användning av lambda med inbyggda funktioner

Ett vanligt användningsområde är att kombinera lambda-funktioner med inbyggda funktioner som map() och filter():

123456789
prices = [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]
copy

Du kan också använda max() i en lambda för att hantera specialfall direkt i uttrycket:

123
safe_value = lambda x: max(x, 0) # Returns 0 if x is negative print(safe_value(-5)) # 0 print(safe_value(10)) # 10
copy
lambda
Note
Notering

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.

Uppgift

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.

  1. Definiera ett lambda-uttryck med hjälp av nyckelordet lambda.
  2. Lambda-uttrycket ska ta en parameter (price).
  3. Om price är negativt, betraktas det som ogiltigt och returnerar 0 genom att använda funktionen max() direkt i lambda-uttrycket.
  4. Lambda-uttrycket ska först kontrollera priset och sedan dra av 13 % från det giltiga beloppet.
  5. Använd en list comprehension för att applicera apply_taxvarje element i prices.

Lösning

Switch to desktopByt till skrivbordet för praktisk övningFortsätt där du är med ett av alternativen nedan
Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 5. Kapitel 4
single

single

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

some-alt