Lambda-functies

Python voor gevorderde ontwikkelaars

Jasmin Ludolf

Senior Data Science Content Developer

Eenvoudige functies

def average(values):
    average_value = sum(values) / len(values)
    return average_value
Python voor gevorderde ontwikkelaars

Lambda-functies

  • Trefwoord lambda
    • Stelt een anonieme functie voor

 

lambda
Python voor gevorderde ontwikkelaars

Lambda-functies

  • Trefwoord lambda
    • Stelt een anonieme functie voor

 

lambda arguments
Python voor gevorderde ontwikkelaars

Lambda-functies

  • Trefwoord lambda
    • Stelt een anonieme functie voor

 

lambda arguments:
Python voor gevorderde ontwikkelaars

Lambda-functies

  • Trefwoord lambda
    • Stelt een anonieme functie voor

$$

lambda arguments: expression
  • Gebruikelijk: x voor één argument
  • De expression is gelijk aan de function body
  • Geen return nodig

$$

  • Kan worden opgeslagen als variabele
Python voor gevorderde ontwikkelaars

Een lambda-functie maken

# Lambda-gemiddeldefunctie
print(lambda x: sum(x) / len(x))



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

print(average)
<function average at 0x7f11ab813ec0>
Python voor gevorderde ontwikkelaars

Lambda-functies gebruiken

# Neem het gemiddelde
(lambda x: sum(x) / len(x))
Python voor gevorderde ontwikkelaars

Lambda-functies gebruiken

# Neem het gemiddelde
(lambda x: sum(x) / len(x))([3, 6, 9])

$$

$$

# Print het gemiddelde
print((lambda x: sum(x) / len(x))([3, 6, 9]))
6.0
Python voor gevorderde ontwikkelaars

Een lambda-functie opslaan en aanroepen

# Sla een lambda-functie op als variabele
average = lambda x: sum(x) / len(x)

# Roep de average-functie aan print(average([3, 6, 9]))
6.0
Python voor gevorderde ontwikkelaars

Meerdere parameters

# Lambda-functie met twee argumenten
power = lambda x, y: x**y


# Verhef 2 tot de macht 3 print(power(2, 3))
8
Python voor gevorderde ontwikkelaars

Lambda-functies met iterabelen

  • map() past een functie toe op alle elementen in een iterabele
names = ["john", "sally", "leah"]

# Pas een lambda-functie toe binnen map() capitalize = map(lambda x: x.capitalize(), names)
print(capitalize)
<map object at 0x7fb200529c10>
# Converteer naar een lijst
print(list(capitalize))
['John', 'Sally', 'Leah']
Python voor gevorderde ontwikkelaars

Custom vs. lambda-functies

Scenario Functietype
Complexe taak Custom
Zelfde taak meerdere keren Custom
Eenmalig uitgevoerd Lambda
Eenvoudige taak Lambda
Python voor gevorderde ontwikkelaars

Laten we oefenen!

Python voor gevorderde ontwikkelaars

Preparing Video For Download...