Как работать с функцией map() в Python

Статьи

Как работать с функцией map() в Python

Автор: Рамис, 10 октября 2021

map() используется для применения функции к каждому элементу итерируемого объекта. Функция может быть любая, которая принимает аргументы.

Здесь мы рассмотрим три способа работы с map: с функцией lambda (анонимная функция), со встроенной, и с определяемой пользователем функцией.

Функция map имеет следующий синтаксис:

map(function, iterable, [iterable 2, iterable 3, ...])

Встроенные функции

В стандартной библиотеке Python много доступных функций, которые можно использовать с map. Все они перечислены в документации Python.

Предположим, есть список строк, каждый из элементов которого нужно превратить в число. Это запросто можно сделать с помощью функции map и встроенной функции int.

>>> elements = ['1','2','3','4']
>>> list(map(int, elements))
[1, 2, 3, 4]
Или предположим, у нас есть список слов, в котором каждый элемент нужно перевести в нижний регистр:

>>> elements = ['ПРИВЕТ','Hello']
>>> list(map(str.lower, elements))
['привет', 'hello']

Функции Lambda

Вместе с функцией map можно использовать и анонимные функции. Это довольно частый сценарий.

Синтаксис map() с простой lambda функцией где мы удвоим каждый элемент в списке:

>>> nums = [100, 200, 300, 400, 500]
>>> list(map(lambda x: x*2, nums))
[200, 400, 600, 800, 1000]

Или же у нас есть список пользователей, и мы хотим с помощью метода title сделать первую букву имени заглавной:

>>> users= ['артем', 'андрей', 'алексей']
>>> list(map(lambda x: x.title(), users))
['Артем', 'Андрей', 'Алексей']

Обычные функции

Определим простую функцию calc() с двумя параметрами x и y, которая принимает в качестве аргументов два числа, складывает их, и возвращать результат.

>>> def calc(x,y):
...     return x+y

Если функция, которую использует map, ожидает два аргумента, то передаются два списка

>>> a = [2,4,6,8,10]
>>> b = [1,3,5,7,9]
>>> list(map(calc, a,b))
[3, 7, 11, 15, 19]

Заключение

Сегодня мы рассмотрели много разных способах использования функции map в Python. Теперь мы можем избежать написания громоздкого кода используя map с собственными, встроенными, и с lambda функциями.