Найти в Дзене
Машинное обучение

Python map и filter, а также lambda-функций

Оглавление

Эти две функции - очень мощные инструменты в Python, которые входят в тему функционального программирования. Зачастую вместе с ними используют анонимные lambda-функции.

Map

На вход принимает два обязательных аргмумента: функция-обработчик и итерируемый объект, чаще всего это список. Суть map'а заключается в том, что он применяет переданную функцию к каждому элементу последовательности. А возвращает так называемый map-объект, который в дальнейшем можно конвертировать в обычный список и не только.

Обратите внимание, мы не пишем скобки у функции add_five при вызове map, это означает то, что мы передаем объект функции, а не вызываем её.

Тоже самое мы могли записать через анонимую функцию прямо в map.

-2

Если вы еще не знакомы с lambda-функциями, то можете посмотреть краткую информацию про них в конце статьи.

Однако в данном примере нагляднее использовать генератор списка.

-3

Хоть map и мощная функция, но лучше исходить от конкретных случаев.

А вот вам действительно полезный пример из практики. Мы можем считать несколько чисел с консоли, которые вводят через пробел, разделив всё это функцией split().

-4

Filter

Имеет схожий синтаксис и принимает также два аргумента: функция-фильтр и итерируемый объект. Filter берет каждый элемент из последовательности и отправляет в функцию, которую мы передали в аргументах. Если эта функция возвращает True, то значение отправлятся в новый filter-объект, а если False, то ничего никуда не отправляется.

-5

тоже самое с анонимной функцией;

-6

И, конечно, генератор списка.

-7

Анонимные функции

lambda a: a + 5

lambda - объявление анонимной функции, можно косвенно сравнить с def.

a - принимаемый аргумент.

a + 5 - то, что функция возвращает.

То есть, по сути после двоеточия сам код, результат которого возвращается.

В общем, штуки то годные, но найти им применение бывает сложно, когда есть множество других вариантов.

Python RU

Рекомендуем почитать