Ответ
Функция 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)).