Найти в Дзене

lambda функция в Python

Анонимная функция - это функция без имени, которая также известна как лямбда-функция. В отличие от функций, у которых есть имена, таких как main() или print_element(), лямбды создаются "на лету" для кратковременного использования. Синтаксис и основы 📝 Лямбда-функция имеет простой синтаксис: Она может содержать: Простой пример: Добавить 10 к аргументу a и вернуть результат: Два аргумента: Умножить аргумент a на аргумент b и вернуть результат: Три аргумента: Просуммировать аргументы a, b и c и вернуть результат: Сила лямбда-функций в практике 💡 Истинная мощь лямбд раскрывается при использовании их внутри других функций. Создание фабрик функций 🏭 Лямбды позволяют создавать функции-генераторы: Работа с коллекциями данных 🛒 Лямбды невероятно полезны для обработки списков, словарей и других структур: В этом примере функция map() применяет лямбда-функцию lambda i: i.upper() к каждому элементу списка shop_list. Она берёт каждую строку и преобразует её в верхний регистр, создавая новый ите

Анонимная функция - это функция без имени, которая также известна как лямбда-функция.

В отличие от функций, у которых есть имена, таких как main() или print_element(), лямбды создаются "на лету" для кратковременного использования.

Синтаксис и основы 📝

Лямбда-функция имеет простой синтаксис:

-2

Она может содержать:

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

Простой пример:

Добавить 10 к аргументу a и вернуть результат:

-3

Два аргумента:

Умножить аргумент a на аргумент b и вернуть результат:

-4

Три аргумента:

Просуммировать аргументы a, b и c и вернуть результат:

-5

Сила лямбда-функций в практике 💡

Истинная мощь лямбд раскрывается при использовании их внутри других функций.

Создание фабрик функций 🏭

Лямбды позволяют создавать функции-генераторы:

-6

Работа с коллекциями данных 🛒

Лямбды невероятно полезны для обработки списков, словарей и других структур:

-7

В этом примере функция map() применяет лямбда-функцию lambda i: i.upper() к каждому элементу списка shop_list. Она берёт каждую строку и преобразует её в верхний регистр, создавая новый итератор с преобразованными значениями.

Затем функция filter() проверяет каждый элемент списка shop_list с помощью условия в лямбда-функции lambda item: 'яблок' in item or 'апельсин' in item. Она проходит по всем элементам и оставляет только те, которые содержат подстроки "яблок" или "апельсин", создавая итератор с отфильтрованными значениями.

Обе функции возвращают специальные объекты-итераторы, поэтому мы оборачиваем их в list(), чтобы преобразовать в обычные списки для удобного отображения и дальнейшей работы.

Результат:

  • map() создал список всех продуктов в верхнем регистре: ['ЯБЛОКИ', 'БАНАНЫ', 'АПЕЛЬСИНЫ']
  • filter() отобрал только полезные продукты: ['яблоки', 'апельсины']

Продвинутые техники 🔥

Цепочка преобразований

Комбинируйте лямбды для сложной обработки данных:

-8
-9

В этом примере функция map() применяет лямбда-функцию lambda item: (item[0], item[1] * item[2]) к каждому элементу списка cart_items. Она берёт каждый товар и вычисляет его общую стоимость (цена × количество), создавая новый итератор с кортежами вида (товар, общая_стоимость).

Затем функция filter() проверяет каждый преобразованный элемент с помощью условия lambda item: item[1] > 50. Она отбирает только те товары, общая стоимость которых превышает 50 рублей, создавая итератор с отфильтрованными значениями.

После этого функция sorted() сортирует отфильтрованные данные по убыванию общей стоимости, используя параметр key=lambda x: x[1] (сортировка по второму элементу кортежа) и reverse=True

Сортировка по сложным критериям 🎯

-10
-11

Когда использовать лямбда-функции? ⏱️

Используйте анонимные функции когда:

  • Нужна простая операция на короткое время
  • Функция используется только в одном месте
  • Хотите сделать код более читаемым (без создания лишних имен)
  • Работаете с функциями высшего порядка (map, filter, sorted)

Помните: Если логика становится сложной - создавайте именованную функцию для лучшей читаемости! 📝

Лямбда-функции - это мощный инструмент в арсенале Python-разработчика, который при грамотном использовании делает код элегантным и эффективным! 💪