Автор оригинала: Team Python Pool.
Объяснение и примеры функций карты Python
Что такое функция Python map ()?
Цель функции Python map – применить одну и ту же процедуру к каждому элементу итеративной структуры данных. Итерационные структуры данных могут включать списки, генераторы, строки и т. Д. В самом простом примере карта может перебирать каждый элемент в списке и применять функцию к каждому элементу.
Python заимствует понятие карты из области функционального программирования. Это встроенная функция, которая используется для применения функции ко всем элементам указанных итерационных и возвращаемых объектов карты. карта также может использоваться в таких ситуациях, как вызов определенного метода для всех объектов, хранящихся в списке, которые изменяют состояние объекта.
Также читайте: Ряд Фибоначчи в Python
Синтаксис функции Python map
Синтаксис функции Python map() таков:
map(function, iterable, ...)
Параметры функции Python map
function : It is a function to which map passes each element of given iterable. iterable : It is a iterable which is to be mapped.
ПРИМЕЧАНИЕ: Вы можете передать одну или несколько итераций функции map ().
Мы можем передать несколько итерационных аргументов функции map (), в этом случае указанная функция должна иметь столько аргументов. Функция будет применяться к этим итеративным элементам параллельно. При наличии нескольких итерационных аргументов итератор карты останавливается, когда исчерпывается самая короткая итерация.
Первый аргумент: Функция
Функция map принимает функцию в качестве первого аргумента. Когда мы думаем о функции в Python, мы автоматически думаем о ключевом слове def, но функция map принимает не только функции , созданные пользователем с помощью ключевого слова def, но также встроенные и анонимные функции и даже методы.
Второй аргумент: Итерируемый
Когда мы думаем об итерируемом, мы автоматически думаем о списках, но итерируемые-это гораздо больше, чем списки. Итерабельный – это объект со счетным числом значений, которые могут быть итеративны, например, с помощью цикла for, Наборы, кортежи, словари также являются итерабельными, и они могут быть использованы в качестве второго аргумента функции map.
Примеры: Python map() со строкой
def to_upper_case(s): return str(s).upper()
Это простая функция, которая возвращает строковое представление входного объекта в верхнем регистре.
Я также определяю служебную функцию для печати элементов итератора. Функция будет печатать элементы итератора с пробелом и будет повторно использоваться во всех фрагментах кода.
def print_iterator(it): for x in it: print(x,) print('') # for new line
Давайте рассмотрим пример функции map() с различными типами итераций.
# map() with string(to_upper_case, 'abc') print(type(map_iterator)) print_iterator(map_iterator)
Выход:
A B C
Python map() с кортежем
# map() with tuple(to_upper_case, (1, 'a', 'abc')) print_iterator(map_iterator)
Выход:
1 A ABC
Python map() со списком
(to_upper_case, ['x', 'a', 'abc']) print_iterator(map_iterator)
Выход:
X A ABC
Пример: Функция Python map() с лямбда-функцией
В функции map() наряду с итеративной последовательностью мы также можем использовать лямбда-функцию. Давайте используем лямбда-функцию для реверсирования каждой строки в списке, как мы сделали это выше, используя глобальную функцию Python
listOfStr = ['hi', 'this' , 'is', 'a', 'very', 'simple', 'string' , 'for', 'us'] # Reverse each string in the list using lambda function & map()(map(lambda x : x[::-1], listOfStr)) print('Modified List : ', modifiedList)
Выход:
Modified List : ['ih', 'siht', 'si', 'a', 'yrev', 'elpmis', 'gnirts', 'rof', 'su']
Он перебирает список строк и применяет лямбда-функцию к каждому элементу строки. Затем сохраняет значение, возвращаемое лямбда-функцией, в новую последовательность для каждого элемента. Затем in last возвращает новую последовательность перевернутых строковых элементов.
Пример: Передача нескольких аргументов функции map() в Python
Функция map() вместе с функцией в качестве аргумента также может передавать в качестве аргументов несколько последовательностей, таких как списки. Давайте посмотрим, как передать 2 списка в функцию map() и получить на их основе объединенный список.
Предположим, что у нас есть два списка, т. е.
list1 = ['hi', 'this', 'is', 'a', 'very', 'simple', 'string', 'for', 'us'] list2 = [11,22,33,44,55,66,77,88,99]
Теперь мы хотим соединить элементы из списка 1 в список 2 и создать новый список того же размера из этих соединенных списков т. е. новые списки должны быть такими,
['hi_11', 'this_22', 'is_33', 'a_44', 'very_55', 'simple_66', 'string_77', 'for_88', 'us_99']
Вывод
- Функция map имеет два аргумента (1) функцию и (2) итерацию.
- Применяет функцию к каждому элементу итерируемого объекта и возвращает объект карты.
- Возвращаемый объект map может быть легко преобразован в другой итерационный объект с помощью встроенных функций.
Подробнее о href=”https://docs.python.org/3/library/functions.html#map”>Python Maps href=”https://docs.python.org/3/library/functions.html#map”>Python Maps
Если вы не нашли то, что искали, то предложите нам это в комментариях ниже. Мы будем более чем счастливы добавить это.