Что делает функция map() в Python?

«Что делает функция map() в Python?» — вопрос из категории Python, который задают на 33% собеседований Data Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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

Синтаксис: map(function, iterable, ...)

Основное использование:

# 1. Преобразование списка чисел в их квадраты
numbers = [1, 2, 3, 4]
squared = map(lambda x: x ** 2, numbers)
print(list(squared))  # [1, 4, 9, 16]

# 2. Использование именованной функции
def to_upper(s):
    return s.upper()

words = ["hello", "world"]
upper_words = map(to_upper, words)
print(list(upper_words))  # ['HELLO', 'WORLD']

# 3. Работа с несколькими итерируемыми объектами (функция должна принимать столько аргументов, сколько итерируемых объектов передано)
list1 = [1, 2, 3]
list2 = [10, 20, 30]
sums = map(lambda x, y: x + y, list1, list2)
print(list(sums))  # [11, 22, 33]

Ключевые особенности:

  • Возвращает объект map (итератор), поэтому для получения списка часто используется list(map(...)).
  • Вычисления происходят «лениво» (lazy evaluation) — элементы обрабатываются по мере необходимости.
  • Альтернатива — генераторные выражения: Во многих случаях они предпочтительнее из-за лучшей читаемости.
    # Эквивалент map с помощью генераторного выражения
    squared_gen = (x ** 2 for x in numbers)
    print(list(squared_gen))  # [1, 4, 9, 16]

    map() эффективен для простых преобразований, особенно с встроенными функциями (например, map(int, list_of_strings)).