Применение функции map в Python
Функция map() в Python принимает функцию и одну или несколько последовательностей в качестве аргументов. Она применяет данную функцию ко всем элементам каждой последовательности, возвращая новую последовательность с результатами.
Синтаксис:
map(function, sequence[, sequence, ...])
В качестве первого аргумента передается функция, которая применяется к каждому элементу последовательности. Второй аргумент - последовательность, над которой будет выполняться преобразование. Можно передать несколько последовательностей, на которых будет выполняться данное преобразование.
Пример:
def square(x):
return x ** 2
numbers = [1, 2, 3, 4, 5]
squared_numbers = list(map(square, numbers))
print(squared_numbers)
# вывод: [1, 4, 9, 16, 25]
В этом примере функция square() принимает один аргумент x и возвращает квадрат этого числа. Функция map() применяет эту функцию ко всем элементам списка numbers, т.е. 1, 2, 3, 4 и 5. Каждый элемент списка передается в функцию square() и сохраняется на выходе как новый элемент списка squared_numbers.
Также, функция map() допускает использование анонимных (lambda) функций, что может стать удобной альтернативой явным функциям. Например:
numbers = [1, 2, 3, 4, 5]
squared_numbers = list(map(lambda x: x ** 2, numbers))
print(squared_numbers)
# вывод: [1, 4, 9, 16, 25]
Здесь мы используем lambda-функцию, которая выполняет ту же операцию, что и функция square() из предыдущего примера. Однако, нет необходимости определять явно функцию для преобразования элементов списка.
Использование map() в сочетании с несколькими последовательностями также может быть полезным. Как пример:
numbers_1 = [1, 2, 3]
numbers_2 = [4, 5, 6]
result = list(map(lambda x, y: x + y, numbers_1, numbers_2))
print(result)
# вывод: [5, 7, 9]
Здесь мы использовали два списка, которые нужно сложить в соответствующих позициях. Функция map() применяет lambda-функцию, которая складывает соответствующие элементы списков numbers_1 и numbers_2. Результирующий список result содержит суммы на соответствующих позициях.