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

Обложка к статье "Функция map( ) в Python"

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

Синтаксис

map(function, iterable, ...)

Параметры

  • function: Обязательный параметр. Функция, которая будет применена к каждому элементу итерируемого объекта. Функция должна принимать столько аргументов, сколько итерируемых объектов передано.
  • iterable: Один или несколько итерируемых объектов. Это могут быть списки, кортежи, строки и другие объекты, поддерживающие итерацию.

Возвращаемое значение

Функция возвращает итератор, содержащий результаты применения указанной функции к каждому элементу переданных итерируемых объектов.

Примеры использования

Пример 1: Применение функции к каждому элементу списка

def square(x):
    return x ** 2

numbers = [1, 2, 3, 4, 5]
squared_numbers = map(square, numbers)
print(list(squared_numbers))  # Вывод: [1, 4, 9, 16, 25]

Пример 2: Применение функции к каждому элементу нескольких списков

def add(x, y):
    return x + y

list1 = [1, 2, 3]
list2 = [4, 5, 6]
summed_list = map(add, list1, list2)
print(list(summed_list))  # Вывод: [5, 7, 9]

Пример 3: Преобразование строки в список символов

string = "hello"
char_list = map(str, string)
print(list(char_list))  # Вывод: ['h', 'e', 'l', 'l', 'o']

Важные замечания

  1. Возвращаемый итератор: Функция map возвращает итератор, а не список. Чтобы получить список, нужно явно преобразовать результат в список с помощью функции list().
  2. Неизменяемость входных данных: Функция map не изменяет исходные итерируемые объекты, а возвращает новый итератор с преобразованными значениями.
  3. Производительность: Так как map возвращает итератор, это может быть более эффективно с точки зрения памяти для работы с большими наборами данных по сравнению с генерацией списков напрямую.
  4. lambda-функции: Вместо определения именованных функций можно использовать lambda-выражения для краткости.

Пример с использованием lambda

numbers = [1, 2, 3, 4, 5]
squared_numbers = map(lambda x: x ** 2, numbers)
print(list(squared_numbers))  # Вывод: [1, 4, 9, 16, 25]

Подробнее про lambda функции читайте в нашей статье — Анонимные функции.

Оцените статью
( Пока оценок нет )
Обучение Python
Добавить комментарий