Функції lambda

Середній рівень Python для розробників

Jasmin Ludolf

Senior Data Science Content Developer

Прості функції

def average(values):
    average_value = sum(values) / len(values)
    return average_value
Середній рівень Python для розробників

Функції lambda

  • Ключове слово lambda
    • Позначає анонімну функцію

 

lambda
Середній рівень Python для розробників

Функції lambda

  • Ключове слово lambda
    • Позначає анонімну функцію

 

lambda arguments
Середній рівень Python для розробників

Функції lambda

  • Ключове слово lambda
    • Позначає анонімну функцію

 

lambda arguments:
Середній рівень Python для розробників

Функції lambda

  • Ключове слово lambda
    • Позначає анонімну функцію

$$

lambda arguments: expression
  • Зазвичай для одного аргументу використовують x
  • expression є еквівалентом тіла функції
  • Інструкція return не потрібна

$$

  • Можна зберігати як змінну
Середній рівень Python для розробників

Створення функції lambda

# Lambda-функція для середнього
print(lambda x: sum(x) / len(x))



<function <lambda> at 0x7f11ab813d80>
# Користувацька функція середнього
def average(x):
    return sum(x) / len(x)  

print(average)
<function average at 0x7f11ab813ec0>
Середній рівень Python для розробників

Використання функцій lambda

# Отримати середнє
(lambda x: sum(x) / len(x))
Середній рівень Python для розробників

Використання функцій lambda

# Отримати середнє
(lambda x: sum(x) / len(x))([3, 6, 9])

$$

$$

# Надрукувати середнє
print((lambda x: sum(x) / len(x))([3, 6, 9]))
6.0
Середній рівень Python для розробників

Збереження та виклик lambda-функції

# Зберегти lambda-функцію як змінну
average = lambda x: sum(x) / len(x)

# Викликати функцію average print(average([3, 6, 9]))
6.0
Середній рівень Python для розробників

Кілька параметрів

# Lambda-функція з двома аргументами
power = lambda x, y: x**y


# Піднести 2 у степінь 3 print(power(2, 3))
8
Середній рівень Python для розробників

Lambda-функції з ітерованими об'єктами

  • map() застосовує функцію до всіх елементів ітерованого об'єкта
names = ["john", "sally", "leah"]

# Застосувати lambda у map() capitalize = map(lambda x: x.capitalize(), names)
print(capitalize)
<map object at 0x7fb200529c10>
# Перетворити на список
print(list(capitalize))
['John', 'Sally', 'Leah']
Середній рівень Python для розробників

Користувацькі vs lambda-функції

Сценарій Тип функції
Складне завдання Користувацька
Те саме завдання багато разів Користувацька
Виконується один раз Lambda
Просте завдання Lambda
Середній рівень Python для розробників

Давайте потренуємось!

Середній рівень Python для розробників

Preparing Video For Download...