Python: Функция map()

Продолжим изучать интересные функции Python. Сейчас остановимся на крайне важной и востребованной функции — map().

Зачем нужна функция map()?


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

Синтаксис функции map():
map(function, iterable)

Где:
  • function: функция, применяемая к каждому элементу итерации.
  • iterable: коллекция элементов (список, кортеж и т.д.).

Простой пример использования map()
Допустим, у вас есть список чисел, и вы хотите возвести каждое число в квадрат. Вот как это делается с помощью map():
numbers = [1, 2, 3, 4]
squared_numbers = list(map(lambda x: x**2, numbers))
print(squared_numbers)  # выводит [1, 4, 9, 16]

Обратите внимание, что результатом вызова map() является специальный объект типа map, который мы тут преобразовали в список функцией list().

Применение map() с несколькими списками
Функция map() способна обрабатывать несколько последовательностей одновременно. Представьте ситуацию, когда у вас есть два списка, и вы хотите применить бинарную операцию к соответствующим элементам:
def add(a, b):
    return a + b

nums1 = [1, 2, 3]
nums2 = [4, 5, 6]
result = list(map(add, nums1, nums2))
print(result)  # выводит [5, 7, 9]

Замена циклов for с использованием map()
Часто map() заменяет цикл for, делая код компактнее и эффективнее. Допустим, у вас есть задача преобразовать все строки списка в заглавные буквы:
names = ['Иван', 'Марина', 'Алексей']
upper_names = list(map(str.upper, names))
print(upper_names)  # выводит ['ИВАН', 'МАРИНА', 'АЛЕКСЕЙ']

Здесь мы использовали встроенную функцию str.upper, применённую к каждой строке списка.

Работаем с анонимными lambda-функциями
Очень часто в паре с map() используют лямбда-функции, поскольку они позволяют быстро определить небольшие функциональные блоки прямо на месте:
words = ["apple", "banana", "cherry"]
lengths = list(map(len, words))
print(lengths)  # выводит [5, 6, 6]

Или вот другой пример:
prices = [100, 200, 300]
discounted_prices = list(map(lambda price: price * 0.9, prices))
print(discounted_prices)  # выводит [90.0, 180.0, 270.0]

Почему map() полезна?


Применение map() полезно потому, что:
  • Повышается скорость обработки данных за счёт векторизации операций.
  • Улучшается читаемость кода.
  • Сокращаются объемные конструкции вроде циклов for.

Когда использовать map()?


Рекомендуется использовать map() в ситуациях, когда нужно:
  • Применять простую операцию к каждому элементу массива.
  • Выполнять одинаковые действия на множестве объектов.
  • Сделать код более чистым и лаконичным.


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

Справочник Python
Автор:  30.09.2025 03:47:51 pm