Funkcje lambda

Python dla programistów – poziom średniozaawansowany

Jasmin Ludolf

Senior Data Science Content Developer

Proste funkcje

def average(values):
    average_value = sum(values) / len(values)
    return average_value
Python dla programistów – poziom średniozaawansowany

Funkcje lambda

  • Słowo kluczowe lambda
    • Reprezentuje funkcję anonimową

 

lambda
Python dla programistów – poziom średniozaawansowany

Funkcje lambda

  • Słowo kluczowe lambda
    • Reprezentuje funkcję anonimową

 

lambda arguments
Python dla programistów – poziom średniozaawansowany

Funkcje lambda

  • Słowo kluczowe lambda
    • Reprezentuje funkcję anonimową

 

lambda arguments:
Python dla programistów – poziom średniozaawansowany

Funkcje lambda

  • Słowo kluczowe lambda
    • Reprezentuje funkcję anonimową

$$

lambda arguments: expression
  • Konwencja: x dla pojedynczego argumentu
  • expression odpowiada ciału funkcji
  • Instrukcja return nie jest wymagana

$$

  • Może być przechowana jako zmienna
Python dla programistów – poziom średniozaawansowany

Tworzenie funkcji lambda

# 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>
Python dla programistów – poziom średniozaawansowany

Używanie funkcji lambda

# Get the average
(lambda x: sum(x) / len(x))
Python dla programistów – poziom średniozaawansowany

Używanie funkcji lambda

# 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
Python dla programistów – poziom średniozaawansowany

Przechowywanie i wywoływanie funkcji lambda

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

# Call the average function print(average([3, 6, 9]))
6.0
Python dla programistów – poziom średniozaawansowany

Wiele parametrów

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


# Raise 2 to the power of 3 print(power(2, 3))
8
Python dla programistów – poziom średniozaawansowany

Funkcje lambda z iterowalnymi

  • map() stosuje funkcję do wszystkich elementów iterowalnych
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']
Python dla programistów – poziom średniozaawansowany

Funkcje własne a lambda

Scenariusz Typ funkcji
Złożone zadanie Własna
To samo zadanie wielokrotnie Własna
Jednorazowe użycie Lambda
Proste zadanie Lambda
Python dla programistów – poziom średniozaawansowany

Czas na ćwiczenia!

Python dla programistów – poziom średniozaawansowany

Preparing Video For Download...