Python функция map() с ПРИМЕРАМИ
Python Map() применяет функцию ко всем элементам итератора, заданным в качестве входных данных. Итератором, например, может быть список, кортеж, набор, словарь, строка, и он возвращает итерируемый объект карты. Python map() — встроенная функция.
Синтаксис
map(function, iterator1,iterator2 ...iteratorN)
параметры
Вот два важных
- function: Обязательная функция, которая должна быть присвоена карте и которая будет применяться ко всем элементам, доступным в итераторе.
- итератор: итерируемый обязательный объект. Это может быть список, кортеж и т. д. В функцию 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*n my_list = [2,3,4,5,6,7,8,9] updated_list = map(square, my_list) print(updated_list) print(list(updated_list))
Вывод:
<map object at 0x0000002C59601748> [4, 9, 16, 25, 36, 49, 64, 81]
Выходные данные функции map(), как видно из выходных данных, представляют собой объект карты, отображаемый на экране как .
Вам придется перебрать выходные данные карты, используя цикл for или метод list(), чтобы получить окончательный результат. Я использовал list() в коде, который отображает значения внутри заданного списка.
Таким образом, используя функцию map(), мы можем получить квадрат каждого числа. Список, заданный для карты, был [2,3,4,5,6,7,8,9] и с помощью функции Square() вывод из map() мы получили [4, 9, 16, 25, 36, 49, 64, 81] .
Функция Map() применяет функцию Square() ко всем элементам списка. Например, переменная my_list обновляет список квадратом каждого числа. Выход сохраняется в переменной update_list.
Использование карты() с 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() в качестве функции для отображения().
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))
Вывод:
<map object at 0x000000E65F901748> [3, 4, 4, 6, 6, 8, 8, 10]
Функция round() применяется ко всем элементам в списке и возвращает список со всеми округленными значениями, как показано в выводе.
Использование карты() со строкой в качестве итератора
Мы также можем использовать функцию map() для строки. В Python, строка действует как массив, поэтому мы можем легко использовать ее внутри карты().
В этом примере у нас есть функция 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 object at 0x000000DF2E711748> WELCOME TO GURU99 TUTORIALS!
Использование карты() со списком Numbers
Для работы со списком функция map() возьмет список чисел и умножит каждое число в списке на 10.
Список, который мы собираемся использовать: [2,3,4,5,6,7,8,9]. Функция myMapFunc() заботится об умножении заданного числа на 10. Функция предназначена для отображения вместе со списком.
Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.
def myMapFunc(n): return n*10 my_list = [2,3,4,5,6,7,8,9] updated_list = map(myMapFunc, my_list) print(updated_list) print(list(updated_list))
Вывод:
<map object at 0x000000EE2C061898> [20, 30, 40, 50, 60, 70, 80, 90]
В результате мы видим, что каждое число в списке
умножить на 10.
Использование карты() с 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 object at 0x0000009C3C3A16A0> ['PHP', 'JAVA', 'PYTHON', 'C++', 'C']
Результат, который мы получаем, представляет собой кортеж, все значения которого преобразуются в верхний регистр.
Использование карты() со словарем
A словарь в Python создается с использованием фигурных скобок ({}). Поскольку словарь является итератором, вы можете использовать его внутри функции map(). Давайте теперь используем словарь в качестве итератора внутри функции map().
В следующем примере показана работа итератора словаря внутри карты().
def myMapFunc(n): return n*10 my_dict = {2,3,4,5,6,7,8,9} finalitems = map(myMapFunc, my_dict) print(finalitems) print(list(finalitems))
Вывод:
<map object at 0x0000007EB451DEF0> [20, 30, 40, 50, 60, 70, 80, 90]
Использование карты() с Set
Установить в Python представляет собой неупорядоченную коллекцию элементов в фигурных скобках (()). Поскольку set() также является итератором, вы можете использовать его внутри функции map().
Вот рабочий пример использования set в качестве итератора внутри карты().
def myMapFunc(n): return n*10 my_set = {2,3,4,5,6,7,8,9} finalitems = map(myMapFunc, my_set) print(finalitems) print(list(finalitems))
Вывод:
<map object at 0x000000AC8F05DEF0> [20, 30, 40, 50, 60, 70, 80, 90]
Использование карты() с функцией Lambda
In Pythonлямбда-выражения используются для создания анонимных функций. Вам придется использовать ключевое слово лямбда так же, как вы используете def для определения обычных функций.
Итак, в этом примере мы собираемся использовать лямбда-функцию внутри карты(). Лямбда-функция умножит каждое значение в списке на 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 object at 0x000000BD18B11898> [20, 30, 40, 50, 60, 70, 80, 90]
Использование нескольких итераторов внутри функции 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+list2 my_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))
Вывод:
<map object at 0x0000004D5F751860> [6, 11, 16, 21, 26, 31, 36]
Пример 2. Передача одного кортежа и итератора списка в функцию map()
Мы собираемся использовать список и итератор кортежа в функции map(). Функция передается на карту — myMapFunc() будет получать элементы из списка и кортежа. Элементы будут объединены подчеркиванием (_). Рабочий пример показан ниже:
def myMapFunc(list1, tuple1): return list1+"_"+tuple1 my_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))
Вывод:
<map object at 0x00000059F37BB4E0> ['a_PHP', 'b_Java', 'b_Python', 'd_C++', 'e_C']
Итого
- Python Map() — это встроенная функция, которая применяет функцию ко всем элементам итератора, заданным в качестве входных данных. Итератором, например, может быть список, кортеж, строка и т. д., и он возвращает итерируемый объект карты.
- Функция map() будет применять данную функцию ко всем элементам внутри итератора и возвращать итерируемый объект карты, то есть кортеж, список и т. д.
- Python Функция map() является встроенной функцией и может также использоваться с другими встроенными функциями, доступными в Python.
- Кортеж — это объект в Python который имеет элементы, разделенные запятыми и заключенные в круглые скобки. В примере возьмем кортеж со строковыми значениями. Функция, которую мы будем использовать, преобразует заданные значения в верхний регистр.
- Словарь в Python создается с помощью фигурных скобок ({}). Поскольку словарь является итератором, вы можете использовать его внутри функции map().
- Установить в Python представляет собой неупорядоченную коллекцию элементов в фигурных скобках (()). Поскольку set() также является итератором, вы можете использовать его внутри функции map().
- In Pythonлямбда-выражения (или лямбда-формы) используются для создания анонимных функций. Таким образом, ключевое слово лямбда необходимо использовать, если вы хотите использовать лямбда внутри карты().
- Вы можете отправить более одного итератора, то есть список или кортеж, в функцию карты().