Python 3 Map - Learn to Use This Powerful Function
В Python 3 функция map является встроенной функцией, которая позволяет применять определенную функцию к каждому элементу итерируемого объекта и возвращать новый объект, содержащий результаты этих применений. Функция map принимает два аргумента: функцию и итерируемый объект, к которому эту функцию нужно применить.
Пример использования функции map:
def square(x):
return x ** 2
numbers = [1, 2, 3, 4, 5]
squares = map(square, numbers)
print(list(squares)) # [1, 4, 9, 16, 25]
Здесь функция square принимает один аргумент и возвращает квадрат этого аргумента. Затем мы создаем список numbers и применяем функцию square к каждому элементу списка с помощью функции map. Полученный объект мы преобразуем в список и выводим его на экран, получая список квадратов чисел от 1 до 5.
Можно использовать lambda-функцию вместо определения новой функции:
numbers = [1, 2, 3, 4, 5]
squares = map(lambda x: x ** 2, numbers)
print(list(squares)) # [1, 4, 9, 16, 25]
Здесь мы используем lambda-функцию, которая тоже принимает один аргумент и возвращает его квадрат. Она передается в функцию map, которая применяет ее к каждому элементу списка numbers и возвращает новый список.
Можно использовать map для преобразования элементов списка в другой тип:
numbers = [1, 2, 3, 4, 5]
strings = map(str, numbers)
print(list(strings)) # ['1', '2', '3', '4', '5']
Здесь мы используем функцию str, которая преобразует каждый элемент списка numbers в строку. Полученный объект мы преобразуем в список и выводим его на экран, получая список строковых представлений чисел от 1 до 5.
Функция map также может принимать несколько итерируемых объектов, если функция, которая передается первым аргументом, принимает несколько аргументов:
def add(x, y):
return x + y
numbers1 = [1, 2, 3]
numbers2 = [4, 5, 6]
sums = map(add, numbers1, numbers2)
print(list(sums)) # [5, 7, 9]
Здесь мы определяем функцию add, которая принимает два аргумента и возвращает их сумму. Затем мы создаем два списка numbers1 и numbers2 и применяем функцию add к каждой паре элементов этих списков с помощью функции map. Полученный объект мы преобразуем в список и выводим его на экран, получая список сумм чисел от 1 до 6.