Рубріки: Основи

Функція map() в Python: як з нею працювати

Дмитро Сімагін

Функція map() в Python зазвичай використовується для обробки таких об’єктів, як списки, кортежі та інші послідовності. Завдяки їй можна застосовувати задану функцію до кожного елемента послідовності, з поверненням нового ітератора з результатами. Зміст цієї статті присвячено основним принципам використання та роботи функції map(), її синтаксису, прикладам коду та варіантам практичного застосування. 

Синтаксис функції map()

Синтаксис функції map() виглядає наступним чином:

map(function, iterable, ...)

 

  • function – функція, яку треба застосувати до кожного елемента ітерації.
  • iterable – ітеративний об’єкт (список, кортеж, рядок та ін.).
  • – додаткові ітеративні об’єкти (якщо function приймає кілька аргументів).

Функція повертає об’єкт типу map, який є ітератором. Щоб отримати результат у вигляді списку чи іншого типу даних, ітерований об’єкт потрібно конвертувати. 

Як використовувати map() в Python

Перед нами нескладне завдання: у нас є список чисел і нам треба обчислити квадрат кожного числа. 

numbers = [3, 6, 8, 9, 13]
squared_numbers = map(lambda x: x**2, numbers)
print(list(squared_numbers))  # Виведе: [9, 36, 62, 81, 169]

 

У цьому фрагменті коду ми використали lambda-функцію, яка виконує обчислення квадрата кожного числа, і застосували її до елементів зі списку numbers. 

Як використати кілька ітеративних об’єктів

Ми можемо ефективно використовувати map() при обробці кількох ітеративних об’єктів, за умови що функція, яка передається, приймає відповідну кількість аргументів. Ось ще один фрагмент коду, в якому треба додати елементи з двох списків: 

list1 = [10, 20, 30]
list2 = [40, 50, 60]
summed_list = map(lambda x, y: x + y, list1, list2)
print(list(summed_list))  # Виведе: [50, 70, 90]

 

Як бачите, ми успішно додали елементи з двох списків, використовуючи лямбда-функції. 

Функція map() і вбудовані функції Python

Функція map() часто використовується з вбудованими функціями Python, такими як str(), int() чи float(). Давайте для прикладу перетворимо список рядків у цілі числа: 

str_numbers = ['3', '4', '5']
int_numbers = map(int, str_numbers)
print(list(int_numbers))  # Виведе: [3, 4, 5]

 

Цей випадок доводить, що конвертація типів даних у списку за допомогою map() може бути дуже легкою. 

Використання map() з користувацькими функціями

Крім lambda, можна використовувати звичайні функції, які заздалегідь визначені. Наприклад, помножимо кожне число списку на два: 

def multiply_by_two(x):
    return x * 2

numbers = [10, 20, 30, 40]
doubled_numbers = map(multiply_by_two, numbers)
print(list(doubled_numbers))  # Виведе: [20, 40, 60, 80]

 

 

Функція multiply_by_two() множить кожен елемент списку на два.

 

Які переваги має функція map()

Серед переваг, які має в Python функція map(), варто виділити: 

  • ця функція робить код більш лаконічним, оскільки обробляє списки за один рядок коду, розробник застосовує функцію до всіх елементів одночасно.
  • map() працює швидше, ніж цикл for, оскільки вона обробляє списки без створення додаткових проміжних об’єктів.
  • функція map() повертає ітератор, це допомагає обробляти великі обсяги даних без додаткового використання пам’яті.

Які недоліки має функція map()

Поряд з очевидними плюсами, не обійшлося і без мінусів:

  • Погана читабельність. Якщо функції складні, використання map() погіршує читання коду.
  • Оскільки об’єкт, що повертається функцією map(), є одноразовим ітератором, то він буде «вичерпаний» після використання. Тому його доведеться перетворити у список або кортеж для подальшого використання.

Як використовувати map() разом з іншими функціями

У більшості випадків map() використовується разом з функціями filter(), reduce(), або list comprehensions. Тобто, ви можете об’єднувати map() з filter(), щоб спочатку застосувати функцію до елементів, а вже потім використати до них фільтр за певними вимогами. 

numbers = [1, 2, 3, 4, 5, 6]
even_squares = filter(lambda x: x % 2 == 0, map(lambda x: x**2, numbers))
print(list(even_squares))  # Виведе: [4, 16, 36]

 

У цьому фрагменті коду ми обчислюємо квадрат кожного числа, а потім фільтруємо ті, які є парними. 

Практичні приклади використання map()

1. Робота з текстом

Припустимо, у нас є список з іменами людей, всі літери яких написані у нижньому регістрі, а нам треба, щоб ім’я починалось з великої літери:

names = ['john', 'mary', 'jane']
capitalized_names = map(str.capitalize, names)
print(list(capitalized_names))  # Виведе: ['John', 'Mary', 'Jane']

 

2. Обчислення символьних даних

Можна використовувати map() для отримання кількості символів у словах: 

words = ['apple', 'banana', 'cherry']
lengths = map(len, words)
print(list(lengths))  # Виведе: [5, 6, 6]

 

3. Обробка інформації

Наприклад, у нас є файл, в якому містяться числа, записані як рядки. Нам потрібно перетворити їх просто в список чисел:

with open('numbers.txt') as file:
    lines = file.readlines()
numbers = map(int, lines)
print(list(numbers))

 

Чи є альтернативи використання map() в Python?

Іноді замість map() ви можете використовувати list comprehensions або генератори. Ось приклад коду: 

numbers = [2, 4, 5, 7, 9]
squared_numbers = [x**2 for x in numbers]
print(squared_numbers)  # Виведе: [4, 16, 25, 49, 81]

 

Багатьом здається, що list comprehensions виглядає більш читабельно, ніж map(). 

Висновок

Функція map() є доволі зручним інструментом для програмування в Python, який можна використовувати для обробки послідовностей даних. Вона чудово підходить для таких випадків, як застосування функцій до кожного елемента ітеративного об’єкта або одночасної обробки значень в кількох ітеративних об’єктах. Хоча вона має деякі незручності, такі як складність читання складних виразів, map() дає розробнику перевагу у вигляді високої продуктивності та збереження пам’яті. Ці дві переваги роблять map() оптимальним варіантом для роботи з великими обсягами даних в Python.

Останні статті

Між NASA та SpaceX виникла суперечка: не можуть обрати варіант висадки на Місяць

Космічне агентство NASA та приватна компанія Ілона Маска SpaceX мають різні погляди на безпеку та…

11.03.2026

Zoom випустить фотореалістичних аватарів, які замінять людей на нарадах

Відеосервіс Zoom анонсує технологію цифрових двійників, які самостійно відвідуватимуть робочі зустрічі. Про це пише TechCrunch.…

10.03.2026

Meta купує Moltbook: соціальну мережу для агентів та ботів

IT-гігант Meta (материнська компанія Facebook) офіційно оголосив про придбання Moltbook — вірусної соціальної мережі, яка…

10.03.2026

Китайський агент штучного інтелекту почав таємно майнити криптовалюту

Експериментальний агент штучного інтелекту ROME, якого створили дослідники, пов'язані з китайською компанією Alibaba, продемонстрував неочікувану…

10.03.2026

Заробляли на DDoS-атаках: у Польщі викрито групу школярів-хакерів, наймолодшому 12 років

Центральне бюро боротьби з кіберзлочинністю Польщі (CBZC) провело масштабну операцію, результатом якої стало викриття групи…

10.03.2026

Microsoft випустила Copilot Cowork — мультимодальний інструмент для запуску агентів

Microsoft оголосила про початок інтеграції технологій Anthropic у свої сервіси, представивши новий інструмент Copilot Cowork,…

10.03.2026