Lambda-Funktionen

Entwicklung mit Python für Fortgeschrittene

Jasmin Ludolf

Senior Data Science Content Developer

Einfache Funktionen

def average(values):
    average_value = sum(values) / len(values)
    return average_value
Entwicklung mit Python für Fortgeschrittene

Lambda-Funktionen

  • lambda Schlüsselwort
    • Stellt eine anonyme Funktion dar

 

lambda
Entwicklung mit Python für Fortgeschrittene

Lambda-Funktionen

  • lambda Schlüsselwort
    • Stellt eine anonyme Funktion dar

 

lambda arguments
Entwicklung mit Python für Fortgeschrittene

Lambda-Funktionen

  • lambda Schlüsselwort
    • Stellt eine anonyme Funktion dar

 

lambda arguments:
Entwicklung mit Python für Fortgeschrittene

Lambda-Funktionen

  • lambda Schlüsselwort
    • Stellt eine anonyme Funktion dar

$$

lambda arguments: expression
  • Normalerweise benutzt man x für ein einzelnes Argument.
  • Der Ausdruck expression ist das selbe wie der Funktionskörper.
  • Eine return-Anweisung wird nicht benötigt.

$$

  • Kann als Variable gespeichert werden
Entwicklung mit Python für Fortgeschrittene

Erstellen einer Lambda-Funktion

# 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>
Entwicklung mit Python für Fortgeschrittene

Mit Lambda-Funktionen arbeiten

# Get the average
(lambda x: sum(x) / len(x))
Entwicklung mit Python für Fortgeschrittene

Mit Lambda-Funktionen arbeiten

# 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
Entwicklung mit Python für Fortgeschrittene

Eine Lambda-Funktion speichern und aufrufen

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

# Call the average function print(average([3, 6, 9]))
6.0
Entwicklung mit Python für Fortgeschrittene

Mehrere Parameter

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


# Raise 2 to the power of 3 print(power(2, 3))
8
Entwicklung mit Python für Fortgeschrittene

Lambda-Funktionen mit iterierbaren Objekten

  • map() wendet eine Funktion auf alle Elemente in einem iterierbaren Objekt an.
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']
Entwicklung mit Python für Fortgeschrittene

Benutzerdefinierte Funktionen vs. Lambda-Funktionen

Szenario Funktionstyp
Komplizierte Aufgabe Individuell
Die gleiche Aufgabe mehrmals Individuell
Einmalige Ausführung Lambda
Einfache Aufgabe Lambda
Entwicklung mit Python für Fortgeschrittene

Lass uns üben!

Entwicklung mit Python für Fortgeschrittene

Preparing Video For Download...