tak.lol
24 январь 2025
2
0
Не нравится 0 Нравится

Функция map()

Функция map()

Давай поговорим о функции map() в Python. Это одна из тех функций, которые могут сделать твой код более читаемым и элегантным, а также немного «магической». Знаешь, как это бывает? Ты пишешь код, и вдруг у тебя появляется возможность сделать его короче, не теряя при этом в ясности. Давай разберемся, как работает map(), и я покажу тебе, как она может спасти твой день (или хотя бы твой код).



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



Вот простой пример:




def square(x):
    return x * x

numbers = [1, 2, 3, 4, 5]
squared_numbers = map(square, numbers)

#Преобразуем итератор в список

print(list(squared_numbers))


В этом примере мы создали функцию square, которая возводит число в квадрат. Затем мы применили эту функцию к списку numbers с помощью map(). В результате получили новый список с квадратами чисел. Но подожди! Мы можем сделать это еще проще!



С помощью лямбда-функций можно избежать создания отдельной функции. Вот так:




numbers = [1, 2, 3, 4, 5]
squared_numbers = map(lambda x: x * x, numbers)

print(list(squared_numbers))


Теперь вместо того чтобы писать отдельную функцию, мы просто используем лямбду. Это как заказать пиццу с доставкой — быстро и удобно!



Но что если у нас есть несколько списков? Не переживай! map() может работать с несколькими итерируемыми объектами одновременно. Например:




list1 = [1, 2, 3]
list2 = [4, 5, 6]

summed = map(lambda x, y: x + y, list1, list2)

print(list(summed))


Здесь мы складываем элементы двух списков. Удобно, не так ли? Как будто ты собрался на вечеринку и решил объединить свои закуски с закусками друга — все становится лучше вместе!



Интересный факт: использование map() может быть более производительным по сравнению с обычным циклом for, особенно при работе с большими объемами данных. Python использует ленивую оценку для итераторов, что означает, что элементы обрабатываются по мере необходимости. Это как если бы ты экономил свою энергию на танцполе — не надо сразу выдыхаться!



Однако стоит помнить, что результат map() — это итератор. Если ты попытаешься использовать его дважды, то он будет «пустым», как твой холодильник после вечеринки. Так что если тебе нужно использовать результат несколько раз, не забудь преобразовать его в список:




result = list(map(lambda x: x * 2, numbers))
print(result)
print(result)  # Теперь все в порядке!


И напоследок: не забывай о том, что map() возвращает итератор. Так что если ты хочешь сохранить результаты для дальнейшего использования, обязательно конвертируй его в список или другой контейнер данных.



В общем, map() — это мощный инструмент для программистов. Он делает наш код чище и понятнее и позволяет избежать лишних циклов. Так что в следующий раз, когда ты будешь обрабатывать данные, подумай о том, чтобы воспользоваться этой функцией! Помни: меньше кода — больше магии!



Задания для закрепления материала


1. Кубы чисел:
Напиши программу, которая принимает список целых чисел и использует map(), чтобы создать новый список, содержащий кубы этих чисел. Например, для входного списка [1, 2, 3, 4] результат должен быть [1, 8, 27, 64].

2. Преобразование строк:
Создай список строк, содержащий названия фруктов (например, ["яблоко", "банан", "груша"]). Используй map(), чтобы преобразовать все строки в верхний регистр. Результат должен быть списком, содержащим ["ЯБЛОКО", "БАНАН", "ГРУША"].

3. Сумма двух списков:
У тебя есть два списка чисел: list_a = [10, 20, 30] и list_b = [1, 2, 3]. Используй map() для создания нового списка, который будет содержать суммы соответствующих элементов из обоих списков. Например, результатом должен быть [11, 22, 33].

4. Фильтрация четных чисел:
Напиши программу, которая принимает список целых чисел и использует map(), чтобы создать новый список, содержащий только четные числа из исходного списка. Например, для входного списка [1, 2, 3, 4, 5] результат должен быть [2, 4].

5. Преобразование температур:
Создай список температур в градусах Цельсия (например, [0, 20, 37]) и используй map(), чтобы преобразовать их в градусы Фаренгейта по формуле F = C * 9/5 + 32. Результат должен быть списком температур в Фаренгейтах.
Комментарии к материалу
Комментировать
Ваш комментарий: