Загружаем изображение…

⚡ Lambda: Функции-однострочники



В Python часто бывают ситуации, когда вам нужна маленькая функция всего один раз. Например, чтобы отсортировать список по хитрому правилу.

Писать для этого полноценный def, придумывать имя и занимать 3 строки кода - лень и некрасиво. Тут на сцену выходят Lambda-функции (они же анонимные функции).

Синтаксис прост: lambda аргументы: выражение

Сравните:

# Классический способ
def square(x):
return x ** 2

# Lambda-стиль
sq = lambda x: x ** 2


🔥 Где это реально нужно?
Чаще всего - внутри функций sorted(), min(), max(), map() или filter().

Пример из жизни:
У нас есть список студентов и их баллов. Нам нужно отсортировать их не по имени, а по баллам.

students = [
("Антон", 50),
("Вика", 90),
("Борис", 75)
]

# Сортируем по 2-му элементу кортежа (x[1])
sorted_students = sorted(students, key=lambda x: x[1])

print(sorted_students)
# [('Антон', 50), ('Борис', 75), ('Вика', 90)]


Внутри key= мы на лету создали функцию, которая принимает студента x и возвращает его балл x[1]. sorted использует это значение для сортировки.

🛑 Когда НЕ надо использовать Lambda:
Не присваивайте лямбды переменным, если планируете использовать их много раз.

# ❌ Плохо (нарушает PEP 8):
f = lambda x: x * 2

# ✅ Хорошо:
def f(x):
return x * 2


Лямбды созданы, чтобы быть "одноразовыми"!

Используете лямбды или предпочитаете старый добрый def?

Подписывайтесь на канал 👉 @python_of
Просмотры: 7 749
Открыть в MAX Сообщить о неточности

Репосты публикации

Публикация канала

Сообщить о неточности

Опишите, что нужно исправить. Если есть источник, добавьте ссылку.

Вы покидаете datool.ru

Ссылка ведёт на внешний сайт. datool.ru не отвечает за его содержимое — проверьте адрес, прежде чем вводить пароли или платёжные данные.

Переход через 10 с

Перейти