Всем привет! Сегодня мы поговорим о такой штуке, как функциональное программирование, а именно лямбда функции, map, filter и reduce в Python.
Так что ж, начнем!
1. Lambda-функции.
Лямбда функции – это обычные функции, только написанные в одну строчку. Имеют синтаксис lambda <args>: expression. Например чтобы сделать функцию число a делиться на число b мы можем воспользоваться двумя эквивалентными выражениями:
Мы могли и такой фокус сделать: (lambda a, b: a%b==0)(5, 4), это было бы тоже самое.
Вы можете спросить – а для чего лямбда. Сейчас узнаете
2. map()
Это функция принимает итерируемую последовательность (список, кортеж, множество, range-итератор и др.), применяет к каждому элементу функцию и возвращает итерируемый объект, который можно преобразовать в список или прокрутить его через цикл for. Давайте примеры!
Например пусть каждый элемент увеличиться в 2 раза. Вот код:
3. filter()
Название говорит само за себя – эта функция фильтрует в последовательности элементы исходя из того, что мы ей дали. Пусть мы отфильтруем числа кратные 2. Возьмем функцию is_odd и отфильтруем числа кратные 2.
4. reduce()
Это функция уже не встроенная, а находится в стандартном модуле functools. Эта функция, как и map и filter, принимает 2 аргумента – функцию и последовательность, однако в отличие от своих собратьев функция-аргумент reduce должна принимать два аргумента. Давайте на примере функции sum это все рассмотрим:
Вот и все друзья. Ставьте лайки и подписывайтесь на канал, не забывайте о нашем телеграмме (@rai_programmista). Всем пока и до скорых встреч.