Python map () применяет функцию ко всем элементам итератора, заданным в качестве входных данных. Итератор, например, может быть списком, кортежем, набором, словарем, строкой и возвращает итерируемый объект карты. Python map () - встроенная функция.
В этом руководстве вы узнаете:
- Синтаксис:
- Как работает функция map ()?
- Использование map () со встроенными функциями Python
- Использование map () со строкой в качестве итератора
- Использование map () со списком чисел
- Использование map () с Tuple
- Использование map () со словарем
- Использование map () с Set
- Использование map () с лямбда-функцией
- Использование нескольких итераторов внутри функции map ()
Синтаксис:
map(function, iterator1,iterator2… iteratorN)
Параметры
Вот два важных
- function: обязательная функция, которую нужно передать map, которая будет применяться ко всем элементам, доступным в итераторе.
- итератор: итеративный обязательный объект. Это может быть список, кортеж и т. Д. Вы можете передать несколько объектов-итераторов в функцию map ().
Возвращаемое значение
Функция map () будет применять данную функцию ко всем элементам внутри итератора и возвращать итерируемый объект карты, то есть кортеж, список и т. Д.
Как работает функция map ()?
Функция map () принимает два входа как функцию и повторяемый объект. Функция, переданная map (), является нормальной функцией, и она будет перебирать все значения, присутствующие в данном итеративном объекте.
Например, представьте, что у вас есть список чисел, и вы хотите найти квадрат каждого из чисел.
Чтобы получить результат, нам понадобится функция, которая вернет квадрат заданного числа. Функция будет следующей:
def square(n):return n*n
Список элементов, которые мы хотим найти в квадрате, выглядит следующим образом:
my_list = [2,3,4,5,6,7,8,9]
Теперь давайте воспользуемся встроенной функцией python map (), чтобы получить квадрат каждого из элементов в my_list.
Окончательный код выглядит следующим образом:
def square(n):return n*nmy_list = [2,3,4,5,6,7,8,9]updated_list = map(square, my_list)print(updated_list)print(list(updated_list))
Выход:
Результатом работы функции map (), как видно на выходе, является объект карты, отображаемый на экране как <объект карты по адресу 0x0000002C59601748>.
Вам нужно будет выполнить итерацию вывода с карты, используя цикл for или метод list (), чтобы получить окончательный результат. Я использовал list () в коде, который отображает значения внутри данного списка.
Таким образом, используя функцию map (), мы можем получить квадрат каждого числа. Список, переданный map, был [2,3,4,5,6,7,8,9], а с помощью функции square () вывод из map () мы получили [4, 9, 16, 25, 36, 49, 64, 81].
Функция map () применяет функцию square () ко всем элементам в списке. Например, переменная my_list обновляет список квадратом каждого числа. Выход хранится в переменной updated_list.
Использование map () со встроенными функциями Python
Функция Python map () является встроенной функцией и также может использоваться с другими встроенными функциями, доступными в Python. В этом примере мы собираемся использовать встроенную функцию Python round (), которая округляет указанные значения.
Пример:
Список, который у меня есть, my_list = [2.6743,3.63526,4.2325,5.9687967,6.3265,7.6988,8.232,9.6907].
Мне нужны округленные значения для каждого элемента в списке. Мы будем использовать round () как функцию map ().
my_list = [2.6743,3.63526,4.2325,5.9687967,6.3265,7.6988,8.232,9.6907]updated_list = map(round, my_list)print(updated_list)print(list(updated_list))
Выход:
Функция round () применяется ко всем элементам в списке и возвращает список со всеми значениями, округленными, как показано в выходных данных.
Использование map () со строкой в качестве итератора
Мы также можем использовать map () в строке. В Python строка действует как массив, поэтому мы можем легко использовать ее внутри map ().
В этом примере у нас есть функция myMapFunc (), которая заботится о преобразовании данной строки в верхний регистр. Функция myMapFunc () передается в функцию map (). Функция карты позаботится о преобразовании строки в верхний регистр, передав ее в myMapFunc ().
def myMapFunc(s):return s.upper()my_str = "welcome to guru99 tutorials!"updated_list = map(myMapFunc, my_str)print(updated_list)for i in updated_list:print(i, end)
Выход:
Использование map () со списком чисел
Для работы со списком в map () возьмем список чисел и умножим каждое число в списке на 10.
Список, который мы собираемся использовать, следующий: [2,3,4,5,6,7,8,9]. Функция myMapFunc () заботится о умножении данного числа на 10. Функция передается на карту вместе со списком.
Пример:
def myMapFunc(n):return n*10my_list = [2,3,4,5,6,7,8,9]updated_list = map(myMapFunc, my_list)print(updated_list)print(list(updated_list))
Выход:
В результате мы видим, что каждое число в списке
умножить на 10.
Использование map () с Tuple
Кортеж - это объект в Python, элементы которого разделены запятыми и заключены в круглые скобки. В этом примере мы возьмем кортеж со строковыми значениями. Функция, которую мы будем использовать, преобразует указанные значения в верхний регистр.
Пример:
def myMapFunc(n):return n.upper()my_tuple = ('php','java','python','c++','c')updated_list = map(myMapFunc, my_tuple)print(updated_list)print(list(updated_list))
Выход:
В результате мы получаем кортеж, в котором все значения преобразованы в верхний регистр.
Использование map () со словарем
Словарь в Python создается с помощью фигурных скобок ({}). Поскольку словарь является итератором, вы можете использовать его внутри функции map (). Давайте теперь используем словарь в качестве итератора внутри функции map ().
В следующем примере показана работа итератора словаря внутри map ().
def myMapFunc(n):return n*10my_dict = {2,3,4,5,6,7,8,9}finalitems = map(myMapFunc, my_dict)print(finalitems)print(list(finalitems))
Выход:
Использование map () с Set
Набор в Python представляет собой неупорядоченный набор элементов в фигурных скобках (()). Поскольку set () также является итератором, вы можете использовать его внутри функции map ().
Вот рабочий пример использования set в качестве итератора внутри map ()
def myMapFunc(n):return n*10my_set = {2,3,4,5,6,7,8,9}finalitems = map(myMapFunc, my_set)print(finalitems)print(list(finalitems))
Выход:
Использование map () с лямбда-функцией
В Python лямбда-выражения используются для создания анонимных функций. Вам нужно будет использовать ключевое слово lambda так же, как вы используете def для определения обычных функций.
Итак, в этом примере мы собираемся использовать лямбда-функцию внутри map (). Лямбда-функция умножит каждое значение в списке на 10.
Пример:
my_list = [2,3,4,5,6,7,8,9]updated_list = map(lambda x: x * 10, my_list)print(updated_list)print(list(updated_list))
Выход:
Использование нескольких итераторов внутри функции map ()
Пример 1. Передача двух итераторов списков в map ()
Вы можете отправить более одного итератора, то есть список, кортеж и т. Д. Одновременно, в функцию map ().
Например, если вы хотите добавить два списка. То же самое можно сделать с помощью функции map (). Мы собираемся использовать два списка my_list1 и my_list2.
В приведенном ниже примере первый элемент my_list1 добавляется к первому элементу my_list2. Функция myMapFunc () принимает элементы my_list1 и my_list2 и возвращает их сумму.
Вот рабочий пример добавления двух заданных списков с помощью функции map ().
def myMapFunc(list1, list2):return list1+list2my_list1 = [2,3,4,5,6,7,8,9]my_list2 = [4,8,12,16,20,24,28]updated_list = map(myMapFunc, my_list1,my_list2)print(updated_list)print(list(updated_list))
Выход:
Пример 2: передача одного кортежа и итератора списка в map ()
Мы собираемся использовать список и итератор кортежа в функции map (). Функция передается карте - myMapFunc () получит элементы из списка и кортежа. Элементы будут соединены знаком подчеркивания (_). Рабочий пример показан ниже:
def myMapFunc(list1, tuple1):return list1+"_"+tuple1my_list = ['a','b', 'b', 'd', 'e']my_tuple = ('PHP','Java','Python','C++','C')updated_list = map(myMapFunc, my_list,my_tuple)print(updated_list)print(list(updated_list))
Выход:
Резюме
- Python map () - это встроенная функция, которая применяет функцию ко всем элементам итератора, заданным в качестве входных данных. Итератор, например, может быть списком, кортежем, строкой и т. Д. И возвращает итерируемый объект карты.
- Функция map () будет применять данную функцию ко всем элементам внутри итератора и возвращать итерируемый объект карты, то есть кортеж, список и т. Д.
- Функция Python map () является встроенной функцией и также может использоваться с другими встроенными функциями, доступными в Python.
- Кортеж - это объект в Python, элементы которого разделены запятыми и заключены в круглые скобки. В примере возьмем кортеж со строковыми значениями. Функция, которую мы будем использовать, преобразует указанные значения в верхний регистр.
- Словарь в Python создается с помощью фигурных скобок ({}). Поскольку словарь является итератором, вы можете использовать его внутри функции map ().
- Набор в Python представляет собой неупорядоченный набор элементов в фигурных скобках (()). Поскольку set () также является итератором, вы можете использовать его внутри функции map ().
- В Python лямбда-выражения (или лямбда-формы) используются для создания анонимных функций. Поэтому ключевое слово lambda необходимо использовать, когда вы хотите использовать lambda внутри map ().
- Вы можете отправить более одного итератора, то есть список, кортеж в функцию map ().