Функция map в Python

Функция map в Python

Python Proga

Всем доброго времени суток! Сегодня я расскажу вам о встроенной функции map.


Функция map выполняет одну и ту же функцию для всех элементов итерируемого объекта и возвращает новый итерируемый объект.

Функция map принимает не менее 2 параметров. Первый параметр - функция, которая будет вызываться для каждого элемента итерируемого объекта, второй параметр - итерируемый объект. Т.е:

map(function, iterable[, iterable1, iterable2,..., iterableN])

Давайте рассмотрим на примере:

Здесь функция map взяла каждое число из списка l_int и вызвала для него функцию str, передав число в качестве параметра - str(<число>). И запись выше эквивалентна следующей записи:


Не надо забывать, что в качестве первого параметра мы можем передать любой callable объект - класс, lambda-функция, самописная функция, метод класса и даже экземпляр класса если в нем определён метод __call__. Если мы хотим вызывать метод встроенного класса, то используем следующую запись:


Также не стоит забывать, что функция map возвращает не список, а итератор:

А это значит вот что:

Здесь мы во время первого вызова функции list прошлись по всем элементам, и во время второго вызова функции list, итератор l_int не вернул нам ничего. Так что сразу приводите к списку или кортежу:


Теперь давайте разберемся, что будет, если передать больше двух параметров. Но не забывайте что второй, и все следующие параметры должны быть итерируемыми объектами.

Как мы видим, что сколько итерируемых объектов мы передали в функцию map, столько же параметров должна принимать функция, которая идёт первым параметром. Чтобы было понятней, код выше можно переписать так:

Надеюсь, что вы поняли, что из себя представляет функция map.

Report Page