Python Функция map() с примерами

⚡ Умное резюме

Python Функция `map()` применяет заданную функцию к каждому элементу итерируемого объекта, такого как список, кортеж, множество, словарь или строка. Она возвращает ленивый объект `map`, который вы можете преобразовать с помощью `list()` или итерировать с помощью цикла.

  • 🔢 Синтаксис: Функция map() принимает функцию плюс один или несколько итерируемых объектов и применяет эту функцию к каждому элементу.
  • 🔁 Возвращаемое значение: Метод `map()` возвращает ленивый объект `map`, поэтому оберните его в `list()`, `tuple()` или `set()`, чтобы просмотреть результаты.
  • 🧩 Итерируемые объекты: В качестве входных данных для функции map() можно использовать списки, кортежи, множества, словари и строки.
  • Лямбда: Сочетание функции map() с лямбда-функцией позволяет избежать определения отдельной именованной функции для простых преобразований.
  • Несколько итерируемых объектов: При передаче нескольких итерируемых объектов функция применяется к ним параллельно.ping в самом кратчайшем случае.
  • 🤖 Помощь ИИ: Искусственный интеллект, используемый в качестве голосового помощника, например, GitHub Copilot, генерирует вызовы функции map(), а преобразования в стиле map используются для подачи данных в конвейеры машинного обучения.

Python функция карты()

Синтаксис

map(function, iterator1,iterator2 ...iteratorN)

Параметры

Вот два важных параметра:

  • функция: Обязательная функция для функции map(), которая будет применяться ко всем элементам, имеющимся в итераторе.
  • итератор: Обязательный итерируемый объект. Это может быть список, кортеж и т. д. В функцию map() можно передать несколько объектов-итераторов.

Возвращаемое значение

Функция map() применяет заданную функцию ко всем элементам внутри итератора и возвращает итерируемый объект map, то есть кортеж, список и т. д.

Как работает функция карты()?

Функция map() принимает два входных параметра: функцию и итерируемый объект. Функция, передаваемая в map(), является обычной функцией и перебирает все значения, присутствующие в итерируемом объекте.

Например, предположим, что у вас есть список чисел, и вы хотите найти квадрат каждого из чисел.

Для получения результата нам нужна функция, которая будет возвращать квадрат заданного числа. Функция выглядит следующим образом:

def square(n):
	return n*n

Список предметов, для которых мы хотим найти квадрат, выглядит следующим образом:

my_list = [2,3,4,5,6,7,8,9]

Теперь воспользуемся встроенной функцией 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(), как показано выше, является объект карты, отображаемый на экране. .

Для получения окончательного результата вам потребуется перебрать выходные данные функции map() с помощью цикла for или метода list(). В коде я использовал метод list() для отображения значений из заданного списка.

Таким образом, используя функцию map(), мы можем получить квадрат каждого числа. Список, переданный функции map(), был [2,3,4,5,6,7,8,9], а используя функцию square(), мы получили результат [4, 9, 16, 25, 36, 49, 64, 81].

Функция map() применяет функцию square() ко всем элементам списка. Например, она берет переменную my_list и обновляет список, добавляя квадрат каждого числа. Результат сохраняется в переменной updated_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() для преобразования в 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))

Выход:

<map object at 0x000000E65F901748>
[3, 4, 4, 6, 6, 8, 8, 10]

Функция round() применяется ко всем элементам списка и возвращает список со всеми округленными значениями, как показано в выводе.

Использование карты() со строкой в ​​качестве итератора

Мы также можем использовать функцию map() для строки. В PythonСтрока ведет себя как массив, поэтому мы можем легко использовать ее внутри функции map().

В этом примере у нас есть функция myMapFunc(), которая отвечает за преобразование заданной строки в верхний регистр. Функция myMapFunc() передается функции map(). Функция 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!

Использование функции map() со списком Numbers

Для работы со списком в функции map() мы возьмем список чисел и умножим каждое число в списке на 10.

Список, который мы будем использовать, — [2,3,4,5,6,7,8,9]. Функция myMapFunc() отвечает за умножение заданного числа на 10. Эта функция передается в функцию map() вместе со списком.

Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.

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().

Следующий пример демонстрирует работу итератора словаря внутри функции 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().

Вот рабочий пример использования множества в качестве итератора внутри функции map():

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 для определения обычных функций.

В этом примере мы будем использовать лямбда-функцию внутри функции 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 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(), передаваемая в map(), получит элементы из списка и кортежа. Элементы будут объединены символом подчеркивания (_). Рабочий пример показан ниже:

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']

Часто задаваемые вопросы (FAQ)

Оба метода применяют операцию к каждому элементу. Генератор списков часто более читабелен и возвращает список напрямую, в то время как функция map() возвращает ленивый объект map и может быть быстрее при повторном использовании существующей именованной функции.

Нет. Функция map() никогда не изменяет исходный итерируемый объект. Она считывает каждый элемент, применяет вашу функцию и создает новый объект ленивой карты, оставляя исходный список, кортеж или строку нетронутыми.

In Python 3. Функция map() является ленивой: она возвращает объект map, значения которого вычисляются только при итерации. Это экономит память при работе с большими объемами данных. Оберните ее в list() или используйте цикл для получения результатов.

Функция map() преобразует каждый элемент, filter() сохраняет только элементы, прошедшие проверку, а reduce() (из библиотеки functools) объединяет все элементы в одно значение. Вместе они охватывают операции преобразования, выбора и агрегирования.

Если итерируемые объекты различаются по длине, функция map() останавливается на самом коротком из них. Лишние элементы в более длинных итерируемых объектах игнорируются, поэтому ошибка не возникает, и результат соответствует самому короткому итерируемому объекту.

Нет. Объект map — это итератор, который исчерпывается после одного прохода. После того, как вы пройдете по нему циклом или вызовете метод list(), он станет пустым. Если вам нужно повторно использовать объект map, сначала преобразуйте его в список.

В машинном обучении функция map() применяет функции предварительной обработки данных к различным наборам данных, такие как масштабирование чисел, токенизация текста или преобразование признаков перед обучением. Она предоставляет удобный и функциональный способ выполнения одной и той же операции для множества выборок.

Да. GitHub Copilot автоматически дополняет вызовы map() нужной функцией и итерируемыми объектами, а инструменты искусственного интеллекта могут преобразовывать циклы в выражения map(), а затем запускать ваши тесты, чтобы подтвердить неизменность поведения.

Подведем итог этой публикации следующим образом: