Funcții lambda

Python intermediar pentru dezvoltatori

Jasmin Ludolf

Senior Data Science Content Developer

Funcții simple

def average(values):
    average_value = sum(values) / len(values)
    return average_value
Python intermediar pentru dezvoltatori

Funcții lambda

  • Cuvântul cheie lambda
    • Reprezintă o funcție anonimă

 

lambda
Python intermediar pentru dezvoltatori

Funcții lambda

  • Cuvântul cheie lambda
    • Reprezintă o funcție anonimă

 

lambda arguments
Python intermediar pentru dezvoltatori

Funcții lambda

  • Cuvântul cheie lambda
    • Reprezintă o funcție anonimă

 

lambda arguments:
Python intermediar pentru dezvoltatori

Funcții lambda

  • Cuvântul cheie lambda
    • Reprezintă o funcție anonimă

$$

lambda arguments: expression
  • Convenția este să se folosească x pentru un singur argument
  • expression este echivalentul corpului funcției
  • Nu este necesară instrucțiunea return

$$

  • Poate fi stocată ca variabilă
Python intermediar pentru dezvoltatori

Crearea unei funcții 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 intermediar pentru dezvoltatori

Utilizarea funcțiilor lambda

# Get the average
(lambda x: sum(x) / len(x))
Python intermediar pentru dezvoltatori

Utilizarea funcțiilor 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 intermediar pentru dezvoltatori

Stocarea și apelarea unei funcții 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 intermediar pentru dezvoltatori

Parametri multipli

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


# Raise 2 to the power of 3 print(power(2, 3))
8
Python intermediar pentru dezvoltatori

Funcții lambda cu iterabile

  • map() aplică o funcție tuturor elementelor dintr-un iterabil
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 intermediar pentru dezvoltatori

Funcții personalizate vs. lambda

Scenariu Tip de funcție
Sarcină complexă Personalizată
Aceeași sarcină de mai multe ori Personalizată
Utilizare unică Lambda
Sarcină simplă Lambda
Python intermediar pentru dezvoltatori

Să exersăm!

Python intermediar pentru dezvoltatori

Preparing Video For Download...