Определение функции
Что такое функция?
подробнее
Функция - именованный блок кода, к которому можно обратиться из другого места программы Преимущество - избегание повторов блоков кода (DRY)
Что такое lambda функция?
подробнее
Lambda функция — это анонимная функция, которая может содержать только одно выражение. Она создаётся с помощью ключевого слова
lambdaи часто используется для краткого определения простых функций “на лету”.
Синтаксис:lambda аргументы: выражение
# Обычная функция
def square(x):
return x ** 2
# Lambda функция
square_lambda = lambda x: x ** 2
print(square(5)) # 25
print(square_lambda(5)) # 25
Где используется lambda функция?
подробнее
- С функцией
map()
numbers = [1, 2, 3, 4, 5]
squared = list(map(lambda x: x**2, numbers))
print(squared) # [1, 4, 9, 16, 25]
- С функцией
filter()
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers) # [2, 4, 6, 8, 10]
- С функцией
sorted()иsort()
students = [('Alice', 85), ('Bob', 90), ('Charlie', 78)]
# Сортировка по оценкам
sorted_students = sorted(students, key=lambda x: x[1])
print(sorted_students) # [('Charlie', 78), ('Alice', 85), ('Bob', 90)]
- В функции
reduce()(functools)
from functools import reduce
numbers = [1, 2, 3, 4, 5]
product = reduce(lambda x, y: x * y, numbers)
print(product) # 120
- В качестве callback функций
# В GUI приложениях
button.config(command=lambda: print("Кнопка нажата"))
# В обработчиках событий
event_handler = lambda event: process_event(event)
- В list comprehensions и других конструкциях
# Хотя это не самый распространенный случай
operations = [lambda x: x+i for i in range(3)]
# Но лучше так не делать из-за замыканий
Примеры:
Пример 1: Работа со списком словарей
data = [
{'name': 'Alice', 'age': 25},
{'name': 'Bob', 'age': 30},
{'name': 'Charlie', 'age': 20}
]
# Сортировка по возрасту
sorted_data = sorted(data, key=lambda person: person['age'])
Пример 2: Фильтрация и преобразование
words = ['apple', 'banana', 'cherry', 'date']
# Отфильтровать слова длиной > 5 и перевести в верхний регистр
result = list(map(lambda w: w.upper(),
filter(lambda w: len(w) > 5, words)))
print(result) # ['BANANA', 'CHERRY']
Пример 3: Создание функций “на лету”
def make_multiplier(n):
return lambda x: x * n
double = make_multiplier(2)
triple = make_multiplier(3)
print(double(5)) # 10
print(triple(5)) # 15