Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> Python

Освоение функции map() в Python: синтаксис, примеры и лучшие практики

Освоение функции map() в Python: синтаксис, примеры и лучшие практики

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

Что вы узнаете

Синтаксис

map(function, iterable1, iterable2, ... iterableN)

Параметры

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

Результат — объект map — ленивый итератор, выдающий преобразованные элементы. Преобразуйте его в список, кортеж или множество для материализации значений.

Как работает map()

Простой пример, возводящий в квадрат каждое число в списке:

def square(n):
    return n * n

my_list = [2, 3, 4, 5, 6, 7, 8, 9]
updated = map(square, my_list)
print(list(updated))  # [4, 9, 16, 25, 36, 49, 64, 81]

Объект map ленив; преобразование в список принудительно вычисляет значения.

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

Комбинируйте map() с любым встроенным, принимающим один аргумент. Например, округление чисел с плавающей точкой:

values = [2.6743, 3.63526, 4.2325, 5.9687967, 6.3265, 7.6988, 8.232, 9.6907]
rounded_vals = map(round, values)
print(list(rounded_vals))  # [3, 4, 4, 6, 6, 8, 8, 10]

Map над строками

Строки итерируемы, поэтому map() может преобразовывать каждый символ или слово.

def to_upper(s):
    return s.upper()

text = "welcome to guru99 tutorials!"
print("".join(map(to_upper, text)))  # WELCOME TO GURU99 TUTORIALS!

Map над списками чисел

def times_ten(n):
    return n * 10

nums = [2, 3, 4, 5, 6, 7, 8, 9]
print(list(map(times_ten, nums)))  # [20, 30, 40, 50, 60, 70, 80, 90]

Map над кортежами

def to_upper_str(s):
    return s.upper()

languages = ("php", "java", "python", "c++", "c")
print(list(map(to_upper_str, languages)))  # ['PHP', 'JAVA', 'PYTHON', 'C++', 'C']

Map над словарями и множествами

При итерации по словарю map() получает его ключи. Для множества порядок произволен.

def times_ten(n):
    return n * 10

sample_set = {2, 3, 4, 5, 6, 7, 8, 9}
print(sorted(map(times_ten, sample_set)))  # [20, 30, 40, 50, 60, 70, 80, 90]

Использование лямбда-функций

Анонимные функции делают код лаконичным:

nums = [2, 3, 4, 5, 6, 7, 8, 9]
print(list(map(lambda x: x * 10, nums)))  # [20, 30, 40, 50, 60, 70, 80, 90]

Множественные итераторы

Пример 1: Сложение двух списков

def add(a, b):
    return a + b

list1 = [2, 3, 4, 5, 6, 7, 8, 9]
list2 = [4, 8, 12, 16, 20, 24, 28]
print(list(map(add, list1, list2)))  # [6, 11, 16, 21, 26, 31, 36]

Пример 2: Конкатенация элементов списка и кортежа

def concat(a, b):
    return f"{a}_{b}"

letters = ['a', 'b', 'b', 'd', 'e']
brands = ('PHP', 'Java', 'Python', 'C++', 'C')
print(list(map(concat, letters, brands)))  # ['a_PHP', 'b_Java', 'b_Python', 'd_C++', 'e_C']

Ключевые выводы

Python

  1. Lambda-функции в Python: практическое руководство по анонимным функциям
  2. Генераторы в Python: эффективная итерация и продвинутые сценарии
  3. Замыкания в Python: как вложенные функции захватывают переменные
  4. Декораторы в Python: улучшайте функции экспертными техниками
  5. Перегрузка операторов в C++: практическое руководство с примерами кода
  6. Функции в C++: подробное объяснение с практическими примерами кода
  7. Функция print() в Python: практическое руководство с примерами
  8. Мастерство метода strip() в Python: подробное руководство и практические примеры
  9. Мастерство метода str.count() в Python: как подсчитывать символы и подстроки с примерами
  10. Мастерство строк форматирования format() в Python: понятные примеры