Эти две функции - очень мощные инструменты в Python, которые входят в тему функционального программирования. Зачастую вместе с ними используют анонимные lambda-функции.
Map
На вход принимает два обязательных аргмумента: функция-обработчик и итерируемый объект, чаще всего это список. Суть map'а заключается в том, что он применяет переданную функцию к каждому элементу последовательности. А возвращает так называемый map-объект, который в дальнейшем можно конвертировать в обычный список и не только.
Обратите внимание, мы не пишем скобки у функции add_five при вызове map, это означает то, что мы передаем объект функции, а не вызываем её.
Тоже самое мы могли записать через анонимую функцию прямо в map.
Если вы еще не знакомы с lambda-функциями, то можете посмотреть краткую информацию про них в конце статьи.
Однако в данном примере нагляднее использовать генератор списка.
Хоть map и мощная функция, но лучше исходить от конкретных случаев.
А вот вам действительно полезный пример из практики. Мы можем считать несколько чисел с консоли, которые вводят через пробел, разделив всё это функцией split().
Filter
Имеет схожий синтаксис и принимает также два аргумента: функция-фильтр и итерируемый объект. Filter берет каждый элемент из последовательности и отправляет в функцию, которую мы передали в аргументах. Если эта функция возвращает True, то значение отправлятся в новый filter-объект, а если False, то ничего никуда не отправляется.
тоже самое с анонимной функцией;
И, конечно, генератор списка.
Анонимные функции
lambda a: a + 5
lambda - объявление анонимной функции, можно косвенно сравнить с def.
a - принимаемый аргумент.
a + 5 - то, что функция возвращает.
То есть, по сути после двоеточия сам код, результат которого возвращается.
В общем, штуки то годные, но найти им применение бывает сложно, когда есть множество других вариантов.