Курс Python → Функция map() и ленивая оценка

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

Для улучшения производительности языка Python, создатели внесли изменения в 3-й версии. Однако, это может привести к тому, что мы не увидим результат обработки данных до тех пор, пока не преобразуем итератор в нужный объект. На небольших объемах данных это не является проблемой, но на практике, где данные разнообразны, это может привести к ошибкам на продакшене, так как мы не сможем заметить потенциальные проблемы заранее.

Пример использования map() с ленивой оценкой:


# Создаем список чисел
numbers = [1, 2, 3, 4, 5]

# Определяем функцию, которую хотим применить
def square(x):
    return x ** 2

# Применяем функцию к каждому элементу списка
result = map(square, numbers)

# Печатаем результат
print(result) # Вывод: 

Чтобы увидеть результат обработки, необходимо преобразовать итератор в список, кортеж или другой объект:


# Преобразуем итератор в список
result_list = list(result)

# Печатаем результат
print(result_list) # Вывод: [1, 4, 9, 16, 25]

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

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Принципы SRP и OCP
  2. Возврат нескольких значений
  3. Измерение времени выполнения кода
  4. Очистка строки в Python
  5. Метод сравнения объектов в Python
  6. Очистка данных с помощью pandas
  7. Оператор space-invader
  8. Таймер обратного отсчета
  9. Применение функции map() с лямбда-функциями
  10. Открытие, чтение и закрытие файла
  11. Принципы Zen Python
  12. Декораторы с аргументами
  13. Функция format() в Python
  14. Простой калькулятор Python
  15. Вычисление фазы комплексного числа
  16. Создание инструмента обнаружения плагиата
  17. Введение в Python
  18. Оптимизация сравнения в Python
  19. Метод join() для объединения элементов
  20. Инициализация структур данных
  21. Блок else в циклах.
  22. Работа с рекламными данными в Pandas
  23. Решатель судоку на Python с pygame
  24. Управление импортом в Python
  25. Работа с множествами в Python
  26. Объединение словарей в Python
  27. Обновление и получение данных в SQLite
  28. Поиск подстроки в строке
  29. Создание словаря в Python
  30. Отрицательные индексы списков
  31. Списки в Python
  32. Сортировка в Python
  33. Группировка элементов Python
  34. Модуль xkcd: добавление юмора в Python
  35. Объединение Python и Shell
  36. Создание матрицы в Python
  37. Названия столбцов в Python таблицах
  38. Генераторы списков
  39. Функция product() в Python
  40. Генерация QR-кодов с Python
  41. Блок else в Python
  42. Оценка выражений генератора в Python
  43. Создание объекта timedelta
  44. Хеширование паролей с солью

Marketello читают маркетологи из крутых компаний