Курс 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. Создание и использование модулей в Python
  2. Python-dateutil — работа с датами
  3. Функции map() и reduce() в Python
  4. Метод __iand__ для пользовательских классов
  5. Вложенные функции в Python
  6. Цепные операции в Python
  7. Работа с itertools
  8. Создание словарей и множеств в Python
  9. Операторы сравнения в Python
  10. Метод __complex__ в Python
  11. Повторение элементов в Python
  12. Извлечение данных из JSON
  13. Импорт классов из другого файла
  14. Резервирование символов в Python
  15. Очистка данных в Python
  16. Python Метод sleep() времени
  17. Чтение и запись TOML-конфигов
  18. Перевод эмодзи и эмотиконов.
  19. Импорт и использование модулей в Python
  20. Метод __int__ в Python
  21. Анонимные функции в Python
  22. Защита данных в Python
  23. Порядок и длина множеств в Python
  24. Проблема с изменяемыми аргументами
  25. Курсы Яндекс Практикум
  26. Поиск подстроки в строке
  27. Применение функции map() в Python
  28. Нахождение разницы между списками в Python
  29. Defaultdict в Python
  30. Использование обратной косой черты в f-строках
  31. Показ всплывающих окон Tkinter
  32. Комментарии в Python
  33. Преобразование типов данных в set comprehension
  34. Метод __float__ в Python
  35. Функция zip() в Python
  36. Описание скриптов в README
  37. Генерация QR-кодов с Python
  38. Копирование словарей и списков в Python
  39. Профилирование с cProfile
  40. Работа с файлами и директориями в Python.
  41. Вычисление натуральных логарифмов в NumPy
  42. Оператор распаковки в Python
  43. Управление виртуальными окружениями в Python
  44. Python defaultdict добавление ключа
  45. Генераторы в Python
  46. Метод rmatmul для пользовательских матриц

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