Для чего используется и как работает функция map() в Python?

Для чего используется и как работает функция map() в Python?
Июнь 2025
6 минут
  1. Главная
  2. Блог
  3. Статьи по программированию
  4. Статьи про Python
  5. Словари Python (dict): ключи, значения, методы работы и операции
Функция map в Python — это встроенная функция, которую используют для применения одного и того же действия ко всем элементам последовательности. Вместо того чтобы писать цикл, вы передаете функцию и коллекцию — и map() сам пробегается по всем элементам, применяя к каждому заданное преобразование. Это удобный способ упростить и ускорить работу с данными.

Разберемся, как работает map(), зачем она нужна, чем полезна и когда от нее стоит отказаться.

Синтаксис

Чтобы применить одну и ту же операцию ко всем элементам списка, множества или другого итерируемого объекта, в Python используют map(). Эта функция избавляет от явных циклов for и делает код чище и короче. Вызов map() выглядит формально, но читается просто — сначала указывается функция, потом данные, к которым эта функция применяется.

Стандартный синтаксис выглядит так:

map(функция, итерируемый_объект, [итерируемый_объект2, итерируемый_объект3, ...])

Здесь:
  • функция (function) — операция, которая применяется к каждому элементу;
  • итерируемый объект (iterable) — множество, список, кортеж и не только;
  • дополнительные итерируемые объекты (iterable2, iterable3…) — если функция принимает подходящее количество аргументов, можно передать еще коллекции.

Объясним, для чего используется map в Python, на простом примере. Возьмем список чисел и попросим программу возвести каждое из них в квадрат.
Пример кода на Python, где используется map и lambda для возведения элементов списка в квадрат и преобразования результата в список
  • numbers — исходный список чисел, которые взяли для примера;
  • lambda x: x**2 — функция, которая возводит числа в квадрат;
  • map() применяет эту функцию к каждому числу;
  • list(result) преобразует результат в список, который можно напечатать или сохранить.

Так map() не меняет исходные данные. Он возвращает новый объект — специальный итератор, который нужно преобразовать в список или другой контейнер, чтобы увидеть результат.

Параметры и возвращаемое значение

Метод map() в Python принимает минимум два аргумента — функцию и итерируемый объект. Если передать несколько коллекций, map() будет брать элементы из каждой по порядку. Итерация завершится, как только закончится самая короткая коллекция — остальные элементы игнорируются.

Важно понимать, что map() не меняет объекты, с которыми работает, а создает и возвращает новые. То, что получается на выходе — и есть возвращаемое значение.

Чтобы лучше разобраться, как работает map() и другие функции Python, советуем пройти курс курс «Профессия Python-разработчик»от ProductStar. В процессе обучения вы изучите язык с нуля, научитесь писать чистый код на практике и получите гарантированную помощь в трудоустройстве от специалистов Карьерного центра ProductStar.

Описание работы функции

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

В отличие от цикла for, который сохраняет в памяти весь результат, map() работает «по одному элементу за раз». Это значит, что программа не загружает в память всю коллекцию, а только текущий обрабатываемый элемент. Такой подход особенно полезен при работе с большими объемами данных.

Совет: при написании кода с map() избегайте сложных операций — для этого лучше использовать list comprehension или цикл for.

Использование функции map() с разными видами функций

Команда map в Python может сочетаться с разными функциями. Рассмотрим пользовательские, встроенные и анонимные лямбда-функции в отдельности.

Использование функции map() + Lambda

Lambda-функция представляет собой одну строку — чаще всего ее используют для улучшения читаемости и сокращения записи кода.

Выше мы уже приводили пример с функциями map() и lambda, когда возводили числа в квадрат. С их помощью также можно преобразовать список строк из нижнего регистра в верхний.
Python-код, использующий map и lambda для преобразования всех слов в списке в верхний регистр с выводом результата.
В примере выше:

  • список слов в нижнем регистре — это words;
  • функция, которая приведет каждое слово в верхний регистр — lambda word: word.upper();
  • функция, которая применяет лямбда к каждому элементу списка — map();
  • print(capitalized) выводит полученные результаты в консоль.

Использование map() со встроенными функциями

С map() можно использовать и другие встроенные функции Python — например, len(), float(), int(), str(). Это позволит не «изобретать велосипед», придумывая алгоритмы с нуля.

Приведем пример с функцией str():
Python-код, в котором используется встроенная функция str с map для преобразования чисел из списка в строки и вывода результата.
Здесь исходный набор numbers преображается в список строк с помощью встроенной функции str(). Чаще всего ее используют при подготовке данных к сериализации или выводу.

Использование map() с несколькими итерациями

Функция map() также может работать одновременно над несколькими итерациями — например, суммировать числа из двух списков.
Пример Python-кода, в котором используется map и lambda для поэлементного сложения двух списков с последующим выводом результата.
В этом случае:

  • list1 и list2 — списки, которые содержат целые числа;
  • lambda x, y: x + y суммирует числа;
  • map() применяет лямбду к числам;
  • print(sums) показывает итог.

Примеры использования функции map()

Приведем еще несколько примеров mapping в Python. С лямбда-функцией можно конвертировать температуры из градусов по Цельсию в градусы по Фаренгейту.
Питон-код с использованием функции map и lambda для преобразования списка температур из Цельсия в Фаренгейты с выводом результата.
В этом примере:

  • temps_c — это список температур по Цельсию;
  • lambda c: (9/5)*c + 32 — функция, переводящая с помощью формулы значение в Фаренгейт;
  • map() применяет формулу к каждому значению из списка;
  • temps_c, print(temps_f) показывает итог.

Благодаря встроенной функции len() можно посчитать длину строки с минимальным количеством кода.
Python-код, использующий функцию map для определения длины слов в списке и вывода результата в виде списка чисел.
Здесь words — список слов, len — функция, считающая длину слов, map(len, words) — функция, применяющая len к каждому слову, list() превращает результат в список, а print(lengths) выводит конечный результат.

Совет: чтобы создать компактные и мощные функции для обработки данных, используйте функцию map() в сочетании с такими функциями Python, как filter() и reduce().

Преимущества использования map()

Выше мы разобрали, как работает map в Python — теперь перечислим преимущества функции. Главное ее достоинство — это компактная и быстрая обработка данных, которая особенно полезна при работе с большими коллекциями.

Также с помощью map() можно добиться:

  • уменьшения количества кода — он становится читаемым;
  • повышения производительности, когда обрабатывается большое количество данных;
  • удобства использования лямбда- и других встроенных функций в Python.

Недостатки map()

Функция map() удобна и лаконична, но не всегда подходит новичкам — обычный цикл for бывает понятнее и нагляднее. Кроме того, map() не сообщает об ошибках внутри переданной функции. Поэтому надо подготовиться к тому, чтобы искать неисправность вручную, если что-то пойдет не так.

Есть и другие ограничения — как итерации с большим количеством вложенных объектов. Например, при работе со списками внутри списков лучше выбрать другие встроенные функции языка, так как map() не справляется с глубоко вложенными структурами. Также программисты не советуют писать длинные lambda-функции, потому что их сложно читать и отлаживать.
Подписка РБК на 6 месяцев
Интенсив РБК на выбор
Профессия Python-разработчик со скидкой до 57% и подарками на 135 000 ₽
3 мини-курса в подарок

Коротко о главном

Функция map() — один из важнейших инструментов Python, который позволяет применить одну функцию ко всем элементам коллекции — числам, спискам, кортежам и другим значениям. При этом map() делает это без явных циклов, поэтому код получается компактнее, работает быстрее и экономит память.

Map() работает следующим образом — принимает функцию по одному элементу и по результату проверки возвращает новый объект. Также она поддерживает работу с lambda, встроенными и пользовательскими функциями, а еще способна обрабатывать несколько коллекций одновременно.

Есть и минусы. Для новичков map() бывает сложной — обычный цикл for() намного понятнее. Еще одна опасность — перегруженный код: чем сложнее выражение, тем труднее найти ошибку.

Комментарии

Нажимая кнопку «Получить консультацию», вы подтверждаете согласие на обработку персональных данных в соответствии с условиями Политики конфиденциальности

Проконсультируйтесь
с карьерным специалистом

Проанализируем ваши навыки, сферу интересов и дадим рекомендации по дальнейшему профессиональному развитию

Вам может понравиться

3
дн.
час.
мин.
сек.
:
00
:
00
:
00
скидка до 57% и подарки на 135 000 ₽
Синтаксис Чтобы применить одну и ту же операцию ко всем элементам списка, множества или другого итерируемого объекта, в Python используют map(). Эта функция избавляет от явных циклов for и делает код чище и короче. Вызов map() выглядит формально, но читается просто — сначала указывается функция, потом данные, к которым эта функция применяется. Стандартный синтаксис выглядит так: map(функция, итерируемый_объект, [итерируемый_объект2, итерируемый_объект3, ...]) Здесь: функция (function) — операция, которая применяется к каждому элементу; итерируемый объект (iterable) — множество, список, кортеж и не только; дополнительные итерируемые объекты (iterable2, iterable3…) — если функция принимает подходящее количество аргументов, можно передать еще коллекции. Объясним, для чего используется map в Python, на простом примере. Возьмем список чисел и попросим программу возвести каждое из них в квадрат. numbers — исходный список чисел, которые взяли для примера; lambda x: x**2 — функция, которая возводит числа в квадрат; map() применяет эту функцию к каждому числу; list(result) преобразует результат в список, который можно напечатать или сохранить. Так map() не меняет исходные данные. Он возвращает новый объект — специальный итератор, который нужно преобразовать в список или другой контейнер, чтобы увидеть результат. Параметры и возвращаемое значение Метод map() в Python принимает минимум два аргумента — функцию и итерируемый объект. Если передать несколько коллекций, map() будет брать элементы из каждой по порядку. Итерация завершится, как только закончится самая короткая коллекция — остальные элементы игнорируются. Важно понимать, что map() не меняет объекты, с которыми работает, а создает и возвращает новые. То, что получается на выходе — и есть возвращаемое значение. Чтобы лучше разобраться, как работает map() и другие функции Python, советуем пройти курс «Профессия Python-разработчик» от ProductStar. В процессе обучения вы изучите язык с нуля, научитесь писать чистый код на практике и получите гарантированную помощь в трудоустройстве от специалистов Карьерного центра ProductStar. Описание работы функции На примере выше можно увидеть, что map() последовательно применяет заданную функцию lambda к каждому итерируемому объекту. А в случае, если их много, map() берет элементы из каждого параллельно, пока не дойдет до конца самого короткого. Все это происходит без создания промежуточных списков, что экономит память. В отличие от цикла for, который сохраняет в памяти весь результат, map() работает «по одному элементу за раз». Это значит, что программа не загружает в память всю коллекцию, а только текущий обрабатываемый элемент. Такой подход особенно полезен при работе с большими объемами данных. Совет: при написании кода с map() избегайте сложных операций — для этого лучше использовать list comprehension или цикл for. Использование функции map() с разными видами функций Команда map в Python может сочетаться с разными функциями. Рассмотрим пользовательские, встроенные и анонимные лямбда-функции в отдельности. Использование функции map() + Lambda Lambda-функция представляет собой одну строку — чаще всего ее используют для улучшения читаемости и сокращения записи кода. Выше мы уже приводили пример с функциями map() и lambda, когда возводили числа в квадрат. С их помощью также можно преобразовать список строк из нижнего регистра в верхний. В примере выше: список слов в нижнем регистре — это words; функция, которая приведет каждое слово в верхний регистр — lambda word: word.upper(); функция, которая применяет лямбда к каждому элементу списка — map(); print(capitalized) выводит полученные результаты в консоль. Использование map() со встроенными функциями С map() можно использовать и другие встроенные функции Python — например, len(), float(), int(), str(). Это позволит не «изобретать велосипед», придумывая алгоритмы с нуля. Приведем пример с функцией str(): Здесь исходный набор numbers преображается в список строк с помощью встроенной функции str(). Чаще всего ее используют при подготовке данных к сериализации или выводу. Использование map() с несколькими итерациями Функция map() также может работать одновременно над несколькими итерациями — например, суммировать числа из двух списков. В этом случае: list1 и list2 — списки, которые содержат целые числа; lambda x, y: x + y суммирует числа; map() применяет лямбду к числам; print(sums) показывает итог. Примеры использования функции map() Приведем еще несколько примеров mapping в Python. С лямбда-функцией можно конвертировать температуры из градусов по Цельсию в градусы по Фаренгейту. В этом примере: temps_c — это список температур по Цельсию; lambda c: (9/5)*c + 32 — функция, переводящая с помощью формулы значение в Фаренгейт; map() применяет формулу к каждому значению из списка; temps_c, print(temps_f) показывает итог. Благодаря встроенной функции len() можно посчитать длину строки с минимальным количеством кода. Здесь words — список слов, len — функция, считающая длину слов, map(len, words) — функция, применяющая len к каждому слову, list() превращает результат в список, а print(lengths) выводит конечный результат. Совет: чтобы создать компактные и мощные функции для обработки данных, используйте функцию map() в сочетании с такими функциями Python, как filter() и reduce(). Преимущества использования map() Выше мы разобрали, как работает map в Python — теперь перечислим преимущества функции. Главное ее достоинство — это компактная и быстрая обработка данных, которая особенно полезна при работе с большими коллекциями. Также с помощью map() можно добиться: уменьшения количества кода — он становится читаемым; повышения производительности, когда обрабатывается большое количество данных; удобства использования лямбда- и других встроенных функций в Python. Недостатки map() Функция map() удобна и лаконична, но не всегда подходит новичкам — обычный цикл for бывает понятнее и нагляднее. Кроме того, map() не сообщает об ошибках внутри переданной функции. Поэтому надо подготовиться к тому, чтобы искать неисправность вручную, если что-то пойдет не так. Есть и другие ограничения — как итерации с большим количеством вложенных объектов. Например, при работе со списками внутри списков лучше выбрать другие встроенные функции языка, так как map() не справляется с глубоко вложенными структурами. Также программисты не советуют писать длинные lambda-функции, потому что их сложно читать и отлаживать. Коротко о главном Функция map() — один из важнейших инструментов Python, который позволяет применить одну функцию ко всем элементам коллекции — числам, спискам, кортежам и другим значениям. При этом map() делает это без явных циклов, поэтому код получается компактнее, работает быстрее и экономит память. Map() работает следующим образом — принимает функцию по одному элементу и по результату проверки возвращает новый объект. Также она поддерживает работу с lambda, встроенными и пользовательскими функциями, а еще способна обрабатывать несколько коллекций одновременно. Есть и минусы. Для новичков map() бывает сложной — обычный цикл for() намного понятнее. Еще одна опасность — перегруженный код: чем сложнее выражение, тем труднее найти ошибку.