Лямбда-функции

Средний уровень Python для разработчиков

Jasmin Ludolf

Senior Data Science Content Developer

Простые функции

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

Лямбда-функции

  • Ключевое слово lambda
    • Обозначает анонимную функцию

 

lambda
Средний уровень Python для разработчиков

Лямбда-функции

  • Ключевое слово lambda
    • Обозначает анонимную функцию

 

lambda arguments
Средний уровень Python для разработчиков

Лямбда-функции

  • Ключевое слово lambda
    • Обозначает анонимную функцию

 

lambda arguments:
Средний уровень Python для разработчиков

Лямбда-функции

  • Ключевое слово lambda
    • Обозначает анонимную функцию

$$

lambda arguments: expression
  • По соглашению для одного аргумента используют x
  • expression эквивалентно телу функции
  • Оператор return не требуется

$$

  • Можно сохранить в переменную
Средний уровень Python для разработчиков

Создание лямбда-функции

# 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 для разработчиков

Использование лямбда-функций

# Get the average
(lambda x: sum(x) / len(x))
Средний уровень Python для разработчиков

Использование лямбда-функций

# 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 для разработчиков

Сохранение и вызов лямбда-функции

# 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 для разработчиков

Несколько параметров

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


# Raise 2 to the power of 3 print(power(2, 3))
8
Средний уровень Python для разработчиков

Лямбда-функции и итерируемые объекты

  • map() применяет функцию ко всем элементам итерируемого объекта
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 для разработчиков

Пользовательские и лямбда-функции

Ситуация Тип функции
Сложная задача Пользовательская
Многократное использование Пользовательская
Однократное использование Лямбда
Простая задача Лямбда
Средний уровень Python для разработчиков

Давайте потренируемся!

Средний уровень Python для разработчиков

Preparing Video For Download...