Lambdafunktioner

Intermediate Python för utvecklare

Jasmin Ludolf

Senior Data Science Content Developer

Enkla funktioner

def average(values):
    average_value = sum(values) / len(values)
    return average_value
Intermediate Python för utvecklare

Lambdafunktioner

  • Nyckelordet lambda
    • Representerar en anonym funktion

 

lambda
Intermediate Python för utvecklare

Lambdafunktioner

  • Nyckelordet lambda
    • Representerar en anonym funktion

 

lambda arguments
Intermediate Python för utvecklare

Lambdafunktioner

  • Nyckelordet lambda
    • Representerar en anonym funktion

 

lambda arguments:
Intermediate Python för utvecklare

Lambdafunktioner

  • Nyckelordet lambda
    • Representerar en anonym funktion

$$

lambda arguments: expression
  • Konventionen är att använda x för ett enda argument
  • expression motsvarar funktionskroppen
  • Ingen return-sats behövs

$$

  • Kan lagras som en variabel
Intermediate Python för utvecklare

Skapa en lambdafunktion

# Lambda average function
print(lambda x: sum(x) / len(x))



<function <lambda> at 0x7f11ab813d80>
# Custom average function
def average(x):
    return sum(x) / len(x)  

print(average)
<function average at 0x7f11ab813ec0>
Intermediate Python för utvecklare

Använda lambdafunktioner

# Get the average
(lambda x: sum(x) / len(x))
Intermediate Python för utvecklare

Använda lambdafunktioner

# Get the average
(lambda x: sum(x) / len(x))([3, 6, 9])

$$

$$

# Print the average
print((lambda x: sum(x) / len(x))([3, 6, 9]))
6.0
Intermediate Python för utvecklare

Lagra och anropa en lambdafunktion

# Store lambda function as a variable
average = lambda x: sum(x) / len(x)

# Call the average function print(average([3, 6, 9]))
6.0
Intermediate Python för utvecklare

Flera parametrar

# Lambda function with two arguments
power = lambda x, y: x**y


# Raise 2 to the power of 3 print(power(2, 3))
8
Intermediate Python för utvecklare

Lambdafunktioner med iterbara objekt

  • map() tillämpar en funktion på alla element i ett itererbart objekt
names = ["john", "sally", "leah"]

# Apply a lambda function inside map() capitalize = map(lambda x: x.capitalize(), names)
print(capitalize)
<map object at 0x7fb200529c10>
# Convert to a list
print(list(capitalize))
['John', 'Sally', 'Leah']
Intermediate Python för utvecklare

Anpassade funktioner vs. lambdafunktioner

Scenario Funktionstyp
Komplex uppgift Anpassad
Samma uppgift flera gånger Anpassad
Utförs en gång Lambda
Enkel uppgift Lambda
Intermediate Python för utvecklare

Nu kör vi en övning!

Intermediate Python för utvecklare

Preparing Video For Download...